递归和非递归分别实现strlen

递归和非递归分别实现strlen

1.非递归:
int my_strlen(char *str)//d定义函数
{
int count = 0;//计数
while (*str !=’\0’)//判断,当字符不为’\0’;时
{
count++;//计数加一
str++;//字符往前加一
}
return count;
}
int main()
{
char arr[] = “hello”;
int ret = my_strlen(arr);
printf("%d\n", ret);
return 0;
}
2.递归
int my_strlen(char *str)
{
if (*str != ‘\0’)
{
return 1 + my_strlen(str + 1);//自己调用自己
}
else
return 0;
}
int main()
{
char arr[] = “hello”;
int ret = my_strlen(arr);
printf("%d", ret);
return 0;
}
运行结果
递归和非递归分别实现strlen