C++中获取字符串长度的方法有:1. std::string使用length()或size()函数;2. C风格字符串使用strlen()函数;注意strlen()不包含'\0',sizeof可能包含'\0'且对指针无效。

在C++中,获取字符串长度的方法取决于你使用的是哪种字符串类型。常见的有 std::string 和 C风格字符串(即字符数组)。下面分别介绍对应的计算方法。
1. 使用 std::string 的 length() 或 size() 方法
如果你使用的是 std::string 类型,可以直接调用其成员函数 length() 或 size() 来获取字符串的字符个数。这两个函数功能完全相同,返回值为无符号整型(size_t)。
示例代码:
#include#include int main() { std::string str = "Hello, C++"; std::cout << "字符串长度: " << str.length() << std::endl; std::cout << "字符串大小: " << str.size() << std::endl; return 0; }
输出结果:
立即学习“C++免费学习笔记(深入)”;
字符串长度: 10 字符串大小: 10
2. 使用 C 风格字符串的 strlen() 函数
对于以空字符 '
对于以空字符 '\0' 结尾的字符数组(如 char[] 或 char*),需要使用
对于以空字符 '\0' 结尾的字符数组(如 char[] 或 char*),需要使用
示例代码:
#include#include // 注意是 cstring,不是 string.h int main() { char str[] = "Hello, C"; std::cout << "C风格字符串长度: " << std::strlen(str) << std::endl; return 0; }
输出结果:
立即学习“C++免费学习笔记(深入)”;
C风格字符串长度: 8
3. 注意事项
- 不要对未初始化或没有 '\0' 结尾的字符数组使用 strlen(),否则会导致未定义行为。
- std::string 的 length() 和 size() 不计算结束符,与 strlen 一致,都是返回实际字符数。
- 如果使用 sizeof 获取字符数组长度,它会包含 '\0',且对指针无效(只返回指针大小)。
基本上就这些。根据你的字符串类型选择对应方法即可。std::string 更推荐用于现代C++开发,更安全便捷。











