字符串已经 ‘\0’ 作为结束标志,strlen函数返回的是在字符串中 ‘\0’ 前面出现的字符个数(不包含 ‘\0’ )。
参数指向的字符串必须要以 ‘\0’ 结束。
注意函数的返回值为size_t,是无符号的( 易错 )
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int my_strlen(const char* arr)//返回值是个数此时用int
{ //因为此时要用指针操作数组里面的数
//并且里面的是字符,不改变里面的值,所以此时定义为const char*
int count = 0;//存储字符串的个数
char *p = arr;//定义一个指针变量并给其赋值(此处貌似有点多余)
while (*p!= '\0')//指针解引用判断里面的值是否为'\0'
{
p++;//指针++即字符地址++
count++;//字符个数++
}
return count;//返回字符个数
}
int main()
{
//**数组**初始化必须要有[]
char arr[] = "中国贵aa";//定义一个自符数组
printf("该字符串长度为:%d\n", my_strlen(arr));//数组名作为指针
//使用时指向数组首元素地址
system("pause");
return 0;
}