编写函数,不允许创建临时变量,求字符串长度
笔记:strlen以\0为结束标志,但是不算\0
方法一:
//my_strlen("abc")
//1+my_strlen("bc")
//1+1+my_strlen("c")
//1+1+1+my_strlen("")
//1+1+1+0=3
int my_strlen(char* str)//数组的第一个字符是整个数组的首地址,所以用指针
{
if (*str = '\0')
{
return 0;
}
else
{
return 1 + my_strlen(str+1);//str存放a的地址,+1存放的是b的地址
}
}
int main()
{
char arr[] = "asdgvg";
int len = my_strlen(arr);
printf("%d ", len);
return 0;
}
方法二:
#include<stdio.h>
#include<string.h>
int my_strlen(char* str)//数组的第一个字符是整个数组的首地址,所以用指针
{
int count = 0;
while (*str != '\0')//*str=a
{
count++;
str++;//a的地址
}
return count;
}
int main()
{
char arr[] = "asdgvg";
int len = my_strlen(arr);
printf("%d ", len);
return 0;
}
来源:CSDN
作者:贪心的柠檬
链接:https://blog.csdn.net/qq_42627691/article/details/104234580