C语言标准库中的 strlen() 函数用于获取字符数组中的字符串长度。它从第一个字符开始计数,直到遇到 '\0',并返回累计的长度(不包括 '\0')。
程序中使用 strlen() 函数之前,需要引入头文件 <string.h>
。strlen() 函数的原型如下:
size_t strlen (const char * str);
str 是一个指向字符串首地址的指针,返回值是 size_t 类型的整数,用于表示字符串长度。
注意,参数 str 使用了const 修饰,表明函数内部无法修改指针所指向的字符。实参如果为非 const 的指针,则被转换为 const 指针。使用 const 具有以下两层含义:
- 确保函数内部不会修改指针所指向的字符。
- 向使用者表明,传入该函数的字符串不会被修改。
返回值是一个 size_t 类型的整数。size_t 并不是一个新的关键字,它实际上是已有整数类型的别名。它可能是 unsigned int 的别名,也可能是 unsigned long 或 unsigned long long 的别名,这取决于编译器的实现。
如下是使用 strlen() 函数获取字符串长度的示例:
/**
* 快速入门C语言 https://xiecoding.cn/c/
**/
#include <stdio.h>
#include <string.h>
int main()
{
char str[20] = "Hello";
size_t size = sizeof(str);
printf("sizeof=%d\n", size);
size_t len = strlen(str);
printf("len=%d\n", len);
return 0;
}
运行结果为:
sizeof=20
len=5
sizeof(str) 测量数组本身所占用空间的大小,因此结果为 20。strlen(str) 测量从第一个元素开始,直到元素值为 '\0' 的字符串长度,因此结果为 5。