字符串长度为每个字符串最后的默认‘\0’之前的个数。如下调试窗口
有如下的要求,尝试自己写一个strlen函数,此处我们需要写一个my_strlen函数,接下来是三种简单方法。
int main()
{
char arr[] = { "abcdef" };
int len = my_strlen(arr);
printf("%d", len);
return 0;
}
第一种,计数器的方法。创建一个计数器,数组名表示首元素地址,从第一个元素开始,每次去找'\n'每次没找到就+1,直到找到‘\0’为止
int my_strlen(char* arr)
{
int count = 0;
while (*arr != '\0')
{
arr++;
count++;
}
return count;
}
第二种,用库函数sizeof,但是要注意,用这种方法时‘\0’会被包含进去,需要-1.
#include<string.h>
int len=sizeof(arr)
//当sizeof(数组名)时数组名代表整个数组,而不是首元素地址
第三种,函数递归。
int my_strlen(char* str)
{
if (*str != '\0')
{
return 1 + my_strlen(str + 1);
}
else
return 0;