随机输入一个字符串,在递归实现strlen 时,在未到达字符串结尾时不断返回1 + Strlen(str+1)即可
递归代码:
int my_strlen(char* str)
{
if (*str == '\0')
return;
return my_strlen(++str) + 1;
}
非递归实现,先定义一个count用于计数,在循环中,在未到达字符串结尾时,不断执行count++即可。
非递归代码:
int my_strlen(char* str)
{
int count = 0;
while (*str)
{
count++;
str++;
}
return count;
}
测试结果:
int main()
{
char str[] = "abcdef";
int len = my_strlen(str);
printf("%d", len);
return 0;
}