C++ 标准库 string 类
在 C 语言中,字符串是以 '\0' 结尾的字符序列。虽然标准库提供了一些 str 系列函数,但它们与字符串操作是分离的,不符合面向对象(OOP)的思想,且底层空间需要用户手动管理,容易引发越界访问等安全问题。
相比之下,C++ 标准库提供的 string 类型表示可变长的字符序列。使用它时只需包含 <string> 头文件,并位于 std 命名空间中即可。
#include <iostream>
#include <string>
using namespace std;
2.1 string 类的构造
string 提供了多种构造函数来适应不同的初始化场景。
- 无参构造:创建一个空字符串。
- 带 c-string 参数:从 C 风格字符串初始化。
- 拷贝构造:基于另一个 string 对象初始化。
- 重复字符构造:指定数量和字符进行填充。
实际开发中,我们通常关注这些常见用法:
#include <iostream>
#include <string>
using namespace std;
// 模拟底层结构示意
// class string {
// char* _str;
// size_t _size;
// size_t _capacity; // 注意拼写修正
// };
int main() {
string s1; // 无参构造,默认空串
string s2("hello world"); // 带参构造,c-string
string s3 = "hello world"; // 隐式转换构造
string s4;
;
;
}


