创建临时变量,利用计数器
int my_strlen(char*str)//非递归
{
int count = 1;
while (*str != '\0')
{
count++;
str++;
}
return count;
}
注:可以创建计数器count,循环条件为字符串访问结束标识符,当访问结束时,循环次数恰好为字符串长度。
使用递归实现
int my_strlen(const char*str)
{
if (*str == '\0')
{
return 0;
}
else
return 1+my_strlen(*str + 1);
}
注:判断条件不变,可以利用递归实现。
利用指针相减
int my_strlen(char*str)
{
char *p = str;
do
{
p++;
} while ((*p != '\0'));
return p - str;//利用指针相减得到差值
}
注:创建指针变量p,存放str首地址,当传参到\0时结束,此时俩个指针相减,即为字符串长度。
主函数
int main()
{
char* arr = "abcde";
int str = my_strlen(arr);//传参要传指针变量,切勿提前解引用
printf("%d\n",str);
return 0;
}