商城首页欢迎来到中国正版软件门户

您的位置:首页 >C++获取字符串长度的正确方法

C++获取字符串长度的正确方法

  发布于2025-12-09 阅读(0)

扫一扫,手机访问

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

c++中如何计算字符串的长度_c++获取字符串长度方法

在C++中,获取字符串长度的方法取决于你使用的是哪种字符串类型。常见的有 std::string 和 C风格字符串(即字符数组)。下面分别介绍对应的计算方法。

1. 使用 std::string 的 length() 或 size() 方法

如果你使用的是 std::string 类型,可以直接调用其成员函数 length()size() 来获取字符串的字符个数。这两个函数功能完全相同,返回值为无符号整型(size_t)。

示例代码:

#include <iostream>
#include <string>

int main() {
    std::string str = "Hello, C++";
    std::cout << "字符串长度: " << str.length() << std::endl;
    std::cout << "字符串大小: " << str.size() << std::endl;
    return 0;
}

输出结果:

字符串长度: 10
字符串大小: 10

2. 使用 C 风格字符串的 strlen() 函数

对于以空字符 '\0' 结尾的字符数组(如 char[]char*),需要使用 <cstring> 头文件中的 strlen() 函数来计算有效字符长度(不包括结尾的 '\0')。

示例代码:

#include <iostream>
#include <cstring>  // 注意是 cstring,不是 string.h

int main() {
    char str[] = "Hello, C";
    std::cout << "C风格字符串长度: " << std::strlen(str) << std::endl;
    return 0;
}

输出结果:

C风格字符串长度: 8

3. 注意事项

  • 不要对未初始化或没有 '\0' 结尾的字符数组使用 strlen(),否则会导致未定义行为。
  • std::string 的 length() 和 size() 不计算结束符,与 strlen 一致,都是返回实际字符数。
  • 如果使用 sizeof 获取字符数组长度,它会包含 '\0',且对指针无效(只返回指针大小)。

基本上就这些。根据你的字符串类型选择对应方法即可。std::string 更推荐用于现代C++开发,更安全便捷。

本文转载于:互联网 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注