C++字符串操作详解:string与CString函数总结

需积分: 9 12 下载量 151 浏览量 更新于2024-07-20 收藏 35KB DOCX 举报
"C++中的字符串操作主要集中在`std::string`类上,包括构造函数、字符操作、字符串属性查询、输入输出以及赋值等。本文是对这些功能的一个简要总结。" 在C++中,`std::string`类是处理文本数据的主要工具,它提供了丰富的函数和操作来方便对字符串的管理。以下是一些关键知识点: 1. **构造函数**: - `string(const char *s)`: 使用C风格的字符数组(C字符串)初始化字符串。 - `string(int n, char c)`: 初始化一个包含`n`个字符`c`的字符串。 - 默认构造函数:创建一个空字符串。 - 复制构造函数:例如`s2 = s1;`或`s2 = "hello";`,分别复制一个字符串或使用字面值初始化。 2. **字符访问**: - `const char &operator[](int n) const` 和 `const char &at(int n) const`:获取字符串中索引为`n`的字符。`at()`提供边界检查,越界时抛出`std::out_of_range`异常,而`[]`运算符不会检查边界。 - `char &operator[](int n)` 和 `char &at(int n)`:与上述类似,但允许修改字符串内容。 - `const char *data() const` 和 `const char *c_str() const`:返回C风格的非空终止字符数组和空终止C字符串。 3. **字符串特性**: - `int capacity() const`:返回当前容量,即无需额外分配内存可容纳的字符数。 - `int max_size() const`:返回字符串对象能存储的最大字符数。 - `int size() const` 和 `int length() const`:返回字符串的当前长度,两者相同。 - `bool empty() const`:检查字符串是否为空。 4. **字符串操作**: - `void resize(int len, char c)`:调整字符串长度为`len`,不足部分用字符`c`填充。 - `int copy(char *s, int n, int pos = 0) const`:将字符串从`pos`位置开始的`n`个字符复制到`char`数组`s`中,返回实际复制的字符数。 5. **输入输出**: - `std::string`类重载了`>>`和`<<`运算符,分别用于从`std::istream`(如`std::cin`)中读取字符串和向`std::ostream`(如`std::cout`)输出字符串。 - `getline(istream &in, string &s)`:从输入流`in`中读取直到遇到换行符`\n`为止的字符串,将其存入`s`。 6. **赋值**: - `string &operator=(const string &s)`:字符串赋值运算符,将一个字符串赋值给另一个。 - 还有其他赋值方式,如`append`、`assign`、`insert`等,用于拼接、替换或在特定位置插入字符串。 这些基本操作使得在C++中处理字符串变得简单且高效。理解并熟练使用这些函数可以极大地提高代码的可读性和维护性。在编写涉及字符串处理的C++程序时,`std::string`是首选的工具。