目录
前言
strlen函数是求字符串长度,或数组长度的函数
提示:以下是本篇文章正文内容,下面案例可供参考
一、strlen的源码是什么?
size_t __cdecl strlen (
const char * str
)
{
const char *eos = str;
while( *eos++ ) ;
return( eos - str - 1 );
}
二、使用步骤
1.引入库
#include <string.h>
使用方法注意事项
- 字符串已经 '\0' 作为结束标志,strlen函数返回的是在字符串中 '\0' 前面出现的字符个数(不包 含 '\0' )。
- 参数指向的字符串必须要以 '\0' 结束。
- 注意函数的返回值为size_t,是无符号的( 易错 )
2.strlen的参数
(const char*str)
返回值是一个无符号的整形 易错
例子如下
#include <stdio.h> int main() { const char*str1 = "abcdef"; const char*str2 = "bbb"; if(strlen(str2)-strlen(str1)>0) { printf("str2>str1\n"); } else { printf("srt1>str2\n"); } return 0; }
结果:str2>str1
原因如下:strlen返回的是无符号整数 3-6计算机计算依旧得3 故 if成立
三、模拟实现strlen的三种方法
1.计数器方式
int my_strlen(const char * str)
{
int count = 0;
while(*str)
{
count++;
str++;
}
return count;
}
2.不能创建临时变量计数器
int my_strlen(const char * str)
{
if(*str == '\0')
return 0;
else
return 1+my_strlen(str+1);
}
3.指针-指针的方式
int my_strlen(char *s)
{
char *p = s;
while(*p != ‘\0’ )
p++;
return p-s;
}