3.mystrlen函数的功能是计算字符串的长度,并作为函数值返回。请填空,并配写主调函数。
```c
int mystrlen(char *ch){
int count = 0;
while(ch !='/0'){
++ch;
++count;
}
return count;
}
int main(){
char ch[20] = "helloworld";
printf("%d",mystrlrn(ch));
}
```
#include<stdio.h>
#include<assert.h>
//size_t my_strlen(const char* p) //1. 计数器型
//{
// assert(p);
// size_t count = 0;
// while (*p)
// {
// count++;
// p++;
// }
// return count;
//}
//size_t my_strlen(const char* p) //2. 指针减指针型
//{
// assert(p);
// char* start = p;
// while (*p)
// {
// p++;
// }
// return p - start;
//}
size_t my_strlen(const char* p) //3. 递归型
{
assert(p);
if (*p)
{
return 1 + my_strlen(p + 1);
}
else
{
return 0;
}
}
int main()
{
char str[] = "hello world!";
int len = my_strlen(str);
printf("len = %d\n", len);
return 0;
}
实现代码如下:
#include <stdio.h>
int getLength(const char* str) {
int count = 0;
while (*str != '\0') {
count++;
str++;
}
return count;
}
int main() {
char str[] = "Hello World";
printf("String length is %d", getLength(str));
return 0;
}