跳到主要内容

C++ strlen() 计算字符串长度

C++ 中的 strlen() 函数返回给定 C 字符串的长度。它定义在 cstring 头文件中。

示例

#include <iostream>
#include <cstring>
using namespace std;

int main() {

// 初始化 C 字符串
char song[] = "We Will Rock You!";

// 打印 song 字符串的长度
cout << strlen(song);

return 0;
}

// 输出:17

strlen() 语法

strlen() 函数的语法是:

strlen(const char* str);

这里的 str 是我们需要找出长度的字符串,被转换为 const char* 类型。

strlen() 参数

strlen() 函数接受以下参数:

  • str - 指向要计算长度的 C 字符串(空终止字符串)的指针

strlen() 返回值

strlen() 函数返回:

  • C 字符串的长度(size_t 类型)

strlen() 原型

cstring 头文件中定义的 strlen() 的原型是:

size_t strlen(const char* str);

注意: 返回的长度不包括空字符 '\0'

strlen() 未定义行为

如果出现以下情况,strlen() 的行为是未定义的:

  • 字符串中没有空字符 '\0',即它不是 C 字符串

示例:C++ strlen()

#include <cstring>
#include <iostream>
using namespace std;

int main() {
char str1[] = "This a string";
char str2[] = "This is another string";

// 找出 str1 和 str2 的长度
// 将 size_t 返回值转换为 int
int len1 = strlen(str1);
int len2 = strlen(str2);

cout << "str1 的长度 = " << len1 << endl;
cout << "str2 的长度 = " << len2 << endl;

if (len1 > len2)
cout << "str1 比 str2 长";
else if (len1 < len2)
cout << "str2 比 str1 长";
else
cout << "str1 和 str2 长度相等";

return 0;
}

输出

str1 的长度 = 13
str2 的长度 = 22
str2 比 str1 长