strlen()的作用
strlen()函数可以计算字符串的长度
strlen()函数只有一个形参,直接在括号里输入数组名就可以返回字符串的长度
strlen()的定义
size_t strlen(const char* str);
strlen()的工作原理
传给strlen()一个地址,strlen会一直往后+1找’\0’,每增加一次count变量也+1,找到’\0’时停止,并返回count
模拟实现my_strlen()
因为strlen()的返回值是无符号整型,所以返回类型用size_t,并且这里的形参不需要改变的,所以加上const修饰
为了防止使用空指针的情况,最好加上断言assert
以下是代码:
#include <assert.h>
#include <stdio.h>
size_t my_strlen(const char* str){
assert(str);
int count = 0;
while(*str++){
count++;
}
return count;
}
int main(){
char str[] = "abc";
printf("%d\n", my_strlen(str));
return 0;
}
运行结果:
还有另一种我比较喜欢的指针减指针的写法:
#include <assert.h>
#include <stdio.h>
size_t my_strlen(const char* str){
assert(str);
char* str2 = str;
while(*str2++);
return (str2 - str - 1);
}
int main(){
char str[] = "abc";
printf("%d\n", my_strlen(str));
return 0;
}
运行结果: