> 文档中心 > strlen()函数的使用及其实现

strlen()函数的使用及其实现

1.strlen函数的使用

#include#includeint main(){char arr[] = "abcdef";int len = strlen(arr); //strlen函数头文件为 #includeprintf("该字符串长度是%d\n", len);return 0;}

代码运行结果如下:
在这里插入图片描述

a.自己写一个函数,测量字符串的长度
模拟strlen()函数,它测量的是“\0”前面的字符串的长度,故可以用一个计数器,当这个字符不是“\0”时,count+1,直到遇到"\0"。

#includeint my_strlen(char* str){int count = 0;while (*str != '\0')//如果是字符的话就进入循环,进行count+1.{count++;str++;}return count;}int main(){char arr[] = "abcdef";int len = my_strlen(arr);//传数组名在这里指的是传的数组的首地址,所以上面要用指针接受。printf("该字符串的长度是%d\n", len);return 0;}

代码运行结果如下:
在这里插入图片描述

b.另一种实现方法就是用函数的递归。

#includeint my_strlen(char* str){if (*str != '\0')return 1 + my_strlen(str + 1);elsereturn 0;}int main(){char arr[] = "abcdef";int len = my_strlen(arr);printf("该字符串的长度是%d\n", len);return 0;}

代码运行结果如下:
在这里插入图片描述
c.指针–指针

int my_strlen(char* arr){char* left = arr;while (*arr){arr++;}return arr - left;}int main(){char arr[] = "haoke";int len = my_strlen(arr);printf("%d\n", len);}