一、什么是strlen
strlen是一个C语言中常用的字符串处理函数,用于计算一个以空字符('\0')为结尾的字符串中的字符个数,即字符串的长度,不包括结尾的空字符。
这个函数通常备用哦过来确定字符串的实际长度,一边进行字符串操作或内存分配。在C语言中,字符串实际上是以字符数组的形式存储在内存中,以空字符结尾作为结束标记。strlen函数通过遍历字符串,直到遇到空字符为止,从而确定字符串的长度。
下面是strlen函数的原型:
size_t strlen(const char *str);
str是一个以空字符结尾的字符串。返回值是一个size_t类型的整数,表示字符串中非空字符的数量,不包括结尾的空字符。
二、如何使用strlen
以下是一个简单的示例,演示了如何使用strlen函数
//库函数strlen的使用
#include<string.h>//使用strlen库函数时需要包含的头文件
int main()
{
char ch[] = "Hello world!";
size_t len = strlen(ch);//strlen返回的是一个size_t类型的数
printf("%zu", len);//%zu用于格式化无符号整数size_t
return 0;
}
三、strlen函数的模拟实现
以下代码演示了如何模拟实现strlen
//模拟实现库函数strlen
//strlen的原型:size_t strlen(const char *str);
//计数器方法
#include<assert.h>
size_t mystrlen1(const char* str)
{
assert(str != NULL);
int count = 0;
while (*str != '\0')//没有遇到空字符时,计数器和指针都++
{
count++;
str++;
}
return count;
}
//递归方法(不用创建临时变量)
size_t mystrlen2(const char* str)
{
if (*str == '\0')
{
return 0;
}
else
{
return 1 + mystrlen2(str + 1);
}
}
int main()
{
char ch[] = "Hello world!";
size_t ret = mystrlen1(ch);
printf("ret = %zu\n", ret);
return 0;
}
更多C语言相关练习请跳转: