字符串
字符串

字符串

5.1 C++ string vs C 字符串

C++ 引入了 std::string 类,大大简化了字符串处理。

特性C 语言C++
类型char[]char*std::string
结束标志'\0'不需要(自动管理)
内存管理手动 malloc/free自动管理
连接操作strcat(危险)+ 运算符(安全)
大小计算strlen(每次遍历)length()(缓存值)
安全性容易缓冲区溢出自动边界检查

5.2 引入 string 头文件

注意string.h 是 C 语言的头文件,string 是 C++ 的头文件。

5.3 创建 string 对象

输出:

5.4 string 运算符

运算符说明示例
+字符串连接"hello" + "world""helloworld"
+=追加字符串s += "!"
==比较相等s1 == s2
!=比较不相等s1 != s2
<, <=, >, >=字典序比较s1 < s2
[]访问字符(下标)s[0] 获取第一个字符
=赋值s1 = s2

5.5 string 常用成员函数

5.5.1 基本属性

函数返回值说明
length()size_t返回字符串长度
size()size_t返回字符串长度(同 length)
c_str()const char*转换为 C 风格字符串(以 \0 结尾)
empty()bool判断是否为空

5.5.2 查找函数

函数说明
find(str)查找 str 首次出现的位置(返回 size_t
rfind(str)查找 str 最后一次出现的位置
find_first_of(chars)查找第一个出现的指定字符
find_last_of(chars)查找最后一个出现的指定字符

注意:如果未找到,find 返回 string::npos(-1)

5.5.3 替换函数

5.5.4 追加、插入、删除

函数说明
append(str)追加字符串
append(count, ch)追加 count 个字符 ch
insert(index, str)在 index 位置插入字符串
insert(index, count, ch)在 index 位置插入 count 个字符
erase(index, count)从 index 开始删除 count 个字符
clear()清空字符串

5.5.5 子串、比较、复制

函数说明
substr(pos, count)返回从 pos 开始、长度为 count 的子串
compare(str)比较两个字符串,返回 0(相等)、正值或负值
compare(pos, count, str)比较从 pos 开始的子串与 str
copy(dest, pos, count)复制到字符数组 dest
swap(other)与 other 交换内容

5.6 C++11 新增函数

函数说明
stoi(str)字符串转整数
stol(str)字符串转长整数
stod(str)字符串转双精度浮点数
to_string(num)数字转字符串

5.7 字符串遍历


26,869字