C++ 标准库中的 std::string 是处理字符串的核心类,封装了字符串的存储、管理和操作,相比 C 风格的 char* 更安全、易用。
1、基本概念
1.1 基本特性
std::string 定义在 头文件中(属于 std 命名空间),本质是对动态字符数组的封装
- 动态大小:自动扩容,无需手动管理内存(避免 C 风格字符串的缓冲区溢出问题)。
- 值语义:赋值、传参时默认进行深拷贝(C++11 后支持移动语义,提升性能)。
- 丰富接口:提供拼接、查找、替换等数十种字符串操作函数。
- 与 C 兼容:可通过 c_str() 转换为 C 风格字符串(const char*)。
1.2 与 C 风格字符串的区别
- // C 风格字符串
- const char* cstr = "Hello";
- char cstr_array[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
- // C++ std::string
- std::string cppstr = "Hello";
复制代码 主要区别:
<ul>内存管理:std::string 自动管理内存,无需手动分配/释放
安全性:std::string 避免缓冲区溢出等安全问题
功能性:std::string 提供丰富的成员函数
便利性:支持运算符重载(+, ==, |