strlen
是一个在 C 语言(以及 C++ 中 C 风格的字符串处理)中常用的标准库函数,用于计算给定字符串的长度,但不包括终止的空字符('\0')。这个函数定义在 <string.h>
(在 C++ 中也可以使用 <cstring>
)头文件中。
1 函数原型
size_t strlen(const char *str);
2 参数
str
:指向以 null 结尾的字符数组的指针,即要计算长度的字符串。
3 注意事项
-
安全性:
strlen
不会检查目标字符串的内存边界,如果传入的指针指向的字符串没有以 null 结尾,strlen
会继续读取内存直到遇到 null 字符,这可能导致缓冲区溢出或其他安全问题。 -
性能:因为
strlen
需要遍历整个字符串直到找到 null 字符,所以它的性能与字符串的长度成正比。对于非常长的字符串或性能敏感的应用,可能需要考虑使用其他方法来优化。 -
使用场景:
strlen
主要用于处理以 null 结尾的字符串,它是 C 和 C++ 标准库中处理这类字符串时的基础函数之一。
4 示例
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "Hello, world!";
printf("The length of '%s' is %zu.\n", str, strlen(str));
return 0;
}
输出将会是:
The length of 'Hello, world!' is 13.
注意,虽然字符串 "Hello, world!"
实际上包含了 14 个字符(包括末尾的 '\0'),但 strlen
只计算到 '\0' 之前的字符数,即 13。
如果对您有帮助的话,请点个赞吧。