【C语言基础篇】字符串函数strlen的介绍及模拟实现
目录
一、strlen的介绍
二、strlen的模拟实现
1.计数器方式
2.指针方式
3.递归方式
个人主页: 倔强的石头的博客
系列专栏 :C语言指南 C语言刷题系列
相关知识点链接
sizeof与strlen的使用及区别
一、strlen的介绍
C语言中的strlen
函数是一个用于计算以空字符(\0
)结尾的字符串长度的标准库函数。
它的作用是从指定的字符数组(通常视为字符串)的第一个字符开始遍历,直到找到终止符\0
为止,并返回在这之前连续的非空字符数量。
函数原型
size_t strlen ( const char * str ) ;
头文件
<string.h>
参数
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));
}