string 类讲解 C++ 中的 string 类是对 char* 字符串的改进版,提供了更加方便和高效的字符串操作方式。string 类的出现解决了 char* 字符串的许多问题,如内存管理、字符串长度等问题。 声明 string 变量 在 C++ 中声明 string 变量非常简单,只需要包含头文件 `<string>` 并使用 `string` 关键字声明变量,如 `string Str;`。string 变量的声明可以带有参数,也可以不带参数。如果不带参数,则使用 string 的默认构造函数,初始化为空字符串。 string 构造函数 string 类提供了多种构造函数,分别是: * `string s;`:生成一个空字符串 * `string s(str)`: 拷贝构造函数,生成 str 的复制品 * `string s(str, stridx)`: 将字符串 str 内 "始于 stridx" 的部分当作字符串的初值 * `string s(str, stridx, strlen)`: 将字符串 str 内 "始于 stridx 且长度顶多 strlen" 的部分作为字符串的初值 * `string s(cstr)`: 将 C 字符串作为 s 的初值 * `string s(chars, chars_len)`: 将 C 字符串前 chars_len 个字符作为字符串 s 的初值 * `string s(num, c)`: 生成一个字符串,包含 num 个 c 字符 * `string s(beg, end)`: 以区间 beg;end(不包含 end)内的字符作为字符串 s 的初值 字符串操作函数 string 类提供了多种操作函数,分别是: * `=`, `assign()`: 赋以新值 * `swap()`: 交换两个字符串的内容 * `+=`, `append()`, `push_back()`: 在尾部添加字符 * `insert()`: 插入字符 * `erase()`: 删除字符 * `clear()`: 删除全部字符 * `replace()`: 替换字符 * `+`: 串联字符串 * `==`, `!=`, `<`, `<=`, `>`, `>=`, `compare()`: 比较字符串 * `size()`, `length()`: 返回字符数量 * `max_size()`: 返回字符的可能最大个数 * `empty()`: 判断字符串是否为空 * `capacity()`: 返回重新分配之前的字符容量 * `reserve()`: 保留一定量内存以容纳一定数量的字符 * `[ ]`, `at()`: 存取单一字符 * `>>`, `getline()`: 从 stream 读取某值 * `<<`: 将值写入 stream * `copy()`: 将某值赋值为一个 C_string * `c_str()`: 将内容以 C_string 返回 * `data()`: 将内容以字符数组形式返回 * `substr()`: 返回某个子字符串 * `find()`: 查找函数 * `begin()`, `end()`: 提供类似 STL 的迭代器支持 * `rbegin()`, `rend()`: 逆向迭代器 * `get_allocator()`: 返回配置器 C++ 字符串和 C 字符串的转换 C++ 提供了多种方法将 C++ 字符串转换为 C 字符串,分别是: * `data()`: 以字符数组的形式返回字符串内容,但并不添加 `\0` * `c_str()`: 返回一个以 `\0` 结尾的字符数组 * `copy()`: 把字符串的内容复制或写入既有的 C_string 或 字符数组内 大小和容量函数 C++ 字符串存在三种大小: * 现有的字符数,函数是 `size()` 和 `length()` * 字符串的最大可能个数,函数是 `max_size()` * 字符串的容量,函数是 `capacity()` 这些函数可以帮助我们更好地管理和操作字符串。
- 粉丝: 7
- 资源: 25
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- GVC-全球价值链参与地位指数,基于ICIO表,(Wang等 2017a)计算方法
- 易语言ADS指纹浏览器管理工具
- 易语言奇易模块5.3.6
- cad定制家具平面图工具-(FG)门板覆盖柜体
- asp.net 原生js代码及HTML实现多文件分片上传功能(自定义上传文件大小、文件上传类型)
- whl@pip install pyaudio ERROR: Failed building wheel for pyaudio
- Constantsfd密钥和权限集合.kt
- 基于Java的财务报销管理系统后端开发源码
- 基于Python核心技术的cola项目设计源码介绍
- 基于Python及多语言集成的TSDT软件过程改进设计源码