1.用 strlen直接求
#include<stdio.h>
#include<string.h>
int main()
{
char arr[]="abc";
int len=strlen(arr);
printf("%d",len);
return 0;
}
2.用函数求
#include<stdio.h>
#include<string.h>
//先用创建临时变量的方式写出函数
int my_strlen(char* str)//这里取的是a的地址 用指针变量接收
{ //计算思路;一个一个取,取的值直到是\0停止
int count = 0;
while (*str != '\0')
{
count++;
str++;
}
return count;
}
int main()
{
char arr[] = "abc";
int len= my_strlen(arr);
//my_strlen里边存放的是a的地址,而不是 abc\0
printf("%d", len);
return 0;
}
3.用递归思路 无临时变量求
思路:
my_strlen("abc")
1+my_strlen("bc")
1+1+my_strlen("c")
1+1+1+my_strlen("")
1+1+1+0
#include<stdio.h>
#include<string.h>
int my_strlen(char* str)
{
if (*str != '\0')//注意 不是!=0,而是!='\0'
{
return 1 + my_strlen(str + 1);
}
else
return 0;
}
int main()
{
char arr[] = "abc";
int len= my_strlen(arr);
printf("%d", len);
return 0;
}
4.用指针-指针的方式
int my_strlen(char* str)
{
char* start = str;
while (*str != 0)
{
str++;
}
return str-start;
}
int main()
{
int len = my_strlen("abc");
printf("%d\n", len);
return 0;
}