使用std::string时调用length()或size()获取字符数,二者等价;处理C风格字符串需用strlen()函数计算有效字符长度,不包含末尾’\0’;注意sizeof返回数组总字节数,可能包含’\0’,与字符串内容长度不同。

在C++中获取字符串长度的方法取决于你使用的字符串类型。常见的有C风格字符串(char数组)和C++标准库中的std::string。以下是几种常用的获取字符串长度的方式。
使用 std::string 的 length() 或 size() 方法
如果你使用的是std::string,可以直接调用length()或size()成员函数,这两个函数功能相同,都返回字符串中字符的数量。
- length():返回字符串的字符数,不包括结尾的空字符
-
size():与
length()等价,为了与其他STL容器保持接口一致而存在
示例代码:
#include <iostream>
#include <string>
<p>int main() {
std::string str = "Hello C++";
std::cout << "长度: " << str.length() << std::endl; // 输出 9
std::cout << "大小: " << str.size() << std::endl; // 输出 9
return 0;
}
使用 strlen() 处理C风格字符串
对于以空字符'\0'结尾的字符数组(即C风格字符串),可以使用<cstring>头文件中的strlen()函数来获取长度。
立即学习“C++免费学习笔记(深入)”;
注意:strlen()不会计算末尾的'<p>注意:<code>strlen()不会计算末尾的'\0',只返回有效字符个数。
‘,只返回有效字符个数。

百度智能云·曦灵

3
百度旗下的AI数字人平台

3
查看详情

示例代码:
#include <iostream>
#include <cstring>
<p>int main() {
const char* cstr = "Hello C";
std::cout << "C字符串长度: " << strlen(cstr) << std::endl; // 输出 7
return 0;
}
处理字符数组时注意区分 sizeof 和 strlen
当你有一个字符数组而不是指针时,sizeof可能会返回整个数组占用的字节数,而不是字符串内容长度。
例如:
char arr[] = "Hello"; std::cout << sizeof(arr) << std::endl; // 输出 6(包括 '\0') std::cout << strlen(arr) << std::endl; // 输出 5
因此,在判断字符串内容长度时,应优先使用strlen(对C字符串)或std::string::length()。
基本上就这些。根据你使用的字符串类型选择对应方法即可。用std::string时调用length()最直观,处理C字符串记得包含<cstring>并使用strlen()。不复杂但容易忽略细节。
相关标签:
字节 ai c++ ios stream 标准库 String strlen 成员函数 字符串 char 风格字符串 指针 接口 Length 字符串类型
大家都在看:
c++怎么判断一个字符串是否全是数字_c++判断字符串为纯数字的方法
c++中的mutable关键字有什么用_mutable成员变量的特性与使用场景
c++中的std::string和C风格字符串如何转换_c++字符串与C字符串互相转换技巧
c++中volatile关键字是做什么用的_c++内存可见性与编译优化控制
c++中的大端和小端(Big-Endian and Little-Endian)是什么_字节序的概念与检测方法
c++中的mutable关键字有什么用_mutable成员变量的特性与使用场景
c++中的std::string和C风格字符串如何转换_c++字符串与C字符串互相转换技巧
c++中volatile关键字是做什么用的_c++内存可见性与编译优化控制
c++中的大端和小端(Big-Endian and Little-Endian)是什么_字节序的概念与检测方法
本站资料仅供学习交流使用请勿商业运营,严禁从事违法,侵权等任何非法活动,否则后果自负!
THE END

































暂无评论内容