string的所有方法
构造与赋值
string() 默认构造函数(空字符串)
string(const string& str) 拷贝构造函数
string(const char* s) 从C风格字符串构造
string(size_t n, char c) 构造包含 n 个字符 c 的字符串
operator= 赋值操作符(支持字符串、字符数组、字符等)
assign(...) 多种重载,灵活赋值
容量相关
size() / length() 返回字符数量(等价方法)
capacity() 返回当前分配的存储容量
empty() 判断字符串是否为空
reserve(size_t n) 预留至少 n 字节的内存空间
resize(size_t n) 调整字符串长度为 n(填充默认字符或截断)
shrink_to_fit() 请求减少容量以匹配当前大小(C++11)
元素访问
operator[](size_t pos) 访问指定位置字符(不检查越界)
at(size_t pos) 访问指定位置字符(越界时抛出异常)
front() 返回首字符(C++11)
back() 返回末尾字符(C++11)
data() 返回指向内部字符数组的指针(C++11 后保证以 \0 结尾)
c_str() 返回C风格字符串(const char*)
修改操作
clear() 清空字符串内容
push_back(char c) 在末尾追加字符
pop_back() 删除末尾字符(C++11)
append(...) 追加字符串/字符数组/子串等
operator+= 追加字符串/字符数组/字符
insert(size_t pos, ...) 在指定位置插入内容
erase(size_t pos, size_t len) 删除指定位置的内容
replace(size_t pos, size_t len, ...) 替换指定位置的内容
swap(string& str) 交换两个字符串的内容
字符串操作
substr(size_t pos, size_t len) 返回从 pos 开始的子字符串
copy(char* dest, size_t len, size_t pos) 将子字符串复制到字符数组
compare(...) 与另一个字符串/字符数组比较(返回 -1/0/1)
starts_with(...) 判断是否以指定前缀开头(C++20)
ends_with(...) 判断是否以指定后缀结尾(C++20)
contains(...) 判断是否包含子字符串(C++23)
查找与替换
find(...) 查找子字符串/字符的首次出现位置
rfind(...) 查找子字符串/字符的最后一次出现位置
find_first_of(...) 查找字符集合中任意字符的首次出现
find_last_of(...) 查找字符集合中任意字符的最后一次出现
find_first_not_of(...) 查找不在字符集合中的首个字符
find_last_not_of(...) 查找不在字符集合中的最后一个字符
迭代器
begin() / end() 正向迭代器的起始和结束
rbegin() / rend() 反向迭代器的起始和结束
cbegin() / cend() 常量正向迭代器(C++11)
其他操作
getline(istream& is, string& str) 从输入流读取一行到字符串(全局函数)
operator+ 字符串拼接(非成员函数)
operator<< / operator>> 流输入输出操作