一、strlen的介绍
C语言中的strlen
函数是一个用于计算以空字符(\0
)结尾的字符串长度的标准库函数。
它的作用是从指定的字符数组(通常视为字符串)的第一个字符开始遍历,直到找到终止符\0
为止,并返回在这之前连续的非空字符数量。
函数原型
size_t strlen ( const char * str ) ;
头文件
参数
const修饰的字符指针,指向字符串(字符数组)起始位置的指针。
返回值
返回类型为size_t,
即无符号整数
返回值是指针指向的字符串或字符数组 在\0之前的字符数量
二、strlen的模拟实现
1.计数器方式
基本思想——
使用一个整型变量count作为计数器,while循环每次若指针所指的内容不为\0,计数器++,指针++
返回计数器的结果
size_t strlen1(const char* arr) { size_t count = 0; while (*arr) { count++; arr++; } return count; }
2.指针方式
基本思想——
使用一个指针记录字符串(字符数组)的起始地址,while循环每次若指针arr所指的内容不为\0,指针++,最后返回(指针arr最后停留的位置与初始位置)做差的结果
size_t strlen2(const char* arr) { const char* temp = arr; while (*arr) arr++; return arr - temp; }
3.递归方式
基本思想——
使用递归实现,函数的返回值
当指针指向内容为\0 返回0 ————递归结束条件
当指针指向内容不为\0 返回1+func(指针+1)
size_t strlen3(const char* arr) { if (*arr == '\0') return 0; else return (1 + strlen3(arr + 1)); }