提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
一、定义
strlen
函数用于计算一个以 null 结尾的字符串的长度,不包括终止符 ‘\0’。它返回字符串的字符数。
二、注意事项
- 字符串已经 ‘\0’ 作为结束标志,
strlen
函数返回的是在字符串中 ‘\0’ 前面出现的字符个数(不包含 ‘\0’ )。 - 参数指向的字符串必须要以 ‘\0’ 结束。
- 注意函数的返回值为size_t,是无符号的( 易错 )。
三、模拟实现
1.计数器
代码如下(示例):
size_t my_strlen(const char* str) //与库函数一致,返回size_t类型的数值,同时用const修饰,防止被修改。
{
size_t count = 0;
assert(str);//断言函数,str不为空指针
while (*str != '\0')
{
count++;
str++;
}
return count;
}
2.递归
代码如下(示例):
size_t my_strlen(const char * str)
{
assert(str);
if(*str == '\0')
return 0;
else
return 1+my_strlen(str+1);
}
3.指针
代码如下(示例):
//指针-指针的⽅式
size_t my_strlen(char *str)
{
assert(str);
char *p = str;
while(*p != ‘\0’ )
p++;
return p-str;
}