C++字符串类的基本操作和特性

需积分: 0 2 下载量 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 类提供了丰富的功能和操作,能够满足各种字符串处理需求。