C++字符串类的基本操作和特性
需积分: 0 62 浏览量
更新于2024-08-05
收藏 49KB PDF 举报
C++ String 输入输出(2)
C++ 中的 string 类是一种强大的字符串处理工具,提供了丰富的构造函数、字符操作、查找函数、替换函数等功能,本文将对 string 类的输入输出操作进行详细介绍。
**1. string 类的构造函数**
string 类提供了多种构造函数,包括:
* `string(const char* s);`:用 C 字符串 s 初始化 string 对象
* `string(int n, char c);`:用 n 个字符 c 初始化 string 对象
* 默认构造函数和复制构造函数:如 `string s1;` 和 `string s2 = "hello";` 都是正确的写法
需要注意的是,当构造的 string 太长而无法表达时,会抛出 `length_error` 异常。
**2. string 类的字符操作**
string 类提供了多种字符操作函数,包括:
* `const char& operator[](int n) const;`:返回当前字符串中第 n 个字符的位置
* `const char& at(int n) const;`:返回当前字符串中第 n 个字符的位置,提供范围检查,当越界时会抛出 `out_of_range` 异常
* `char& operator[](int n);`:返回当前字符串中第 n 个字符的位置,可以修改该字符
* `char& at(int n);`:返回当前字符串中第 n 个字符的位置,可以修改该字符,提供范围检查
* `const char* data() const;`:返回一个非 null 终止的 C 字符数组
* `const char* c_str() const;`:返回一个以 null 终止的 C 字符串
* `int copy(char* s, int n, int pos = 0) const;`:把当前串中以 pos 开始的 n 个字符拷贝到以 s 为起始位置的字符数组中,返回实际拷贝的数目
**3. string 类的特性描述**
string 类提供了多种特性描述函数,包括:
* `int capacity() const;`:返回当前容量(即 string 中不必增加内存即可存放的元素个数)
* `int max_size() const;`:返回 string 对象中可存放的最大字符串的长度
* `int size() const;`:返回当前字符串的大小
* `int length() const;`:返回当前字符串的长度
* `bool empty() const;`:当前字符串是否为空
* `void resize(int len, char c);`:把字符串当前大小置为 len,并用字符 c 填充不足的部分
**4. string 类的输入输出操作**
string 类重载运算符 `operator>>` 用于输入,同样重载运算符 `operator<<` 用于输出操作。例如:
```cpp
string s;
cin >> s; // 输入字符串
cout << s; // 输出字符串
```
另外,C++ 还提供了 `getline` 函数用于从输入流中读取字符串,以换行符 `\n` 分开:
```cpp
string s;
getline(cin, s); // 读取字符串
```
**5. string 类的赋值**
string 类提供了多种赋值函数,包括:
* `string& operator=(const string& s);`:把字符串 s 赋给当前字符串
例如:
```cpp
string s1, s2;
s1 = s2; // 把字符串 s2 赋给 s1
```
C++ 的 string 类提供了丰富的功能和操作,能够满足各种字符串处理需求。
2012-09-24 上传
2009-02-01 上传
2023-08-13 上传
2023-12-08 上传
2016-12-05 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
2023-07-17 上传
love彤彤
- 粉丝: 621
- 资源: 310
最新资源
- 黑板风格计算机毕业答辩PPT模板下载
- CodeSandbox实现ListView快速创建指南
- Node.js脚本实现WXR文件到Postgres数据库帖子导入
- 清新简约创意三角毕业论文答辩PPT模板
- DISCORD-JS-CRUD:提升 Discord 机器人开发体验
- Node.js v4.3.2版本Linux ARM64平台运行时环境发布
- SQLight:C++11编写的轻量级MySQL客户端
- 计算机专业毕业论文答辩PPT模板
- Wireshark网络抓包工具的使用与数据包解析
- Wild Match Map: JavaScript中实现通配符映射与事件绑定
- 毕业答辩利器:蝶恋花毕业设计PPT模板
- Node.js深度解析:高性能Web服务器与实时应用构建
- 掌握深度图技术:游戏开发中的绚丽应用案例
- Dart语言的HTTP扩展包功能详解
- MoonMaker: 投资组合加固神器,助力$GME投资者登月
- 计算机毕业设计答辩PPT模板下载