C++ STL string核心函数与操作详解

需积分: 4 5 下载量 41 浏览量 更新于2024-07-28 1 收藏 27KB DOCX 举报
C++ STL string 是标准模板库 (Standard Template Library) 中的一个重要组成部分,它提供了处理字符序列的高效、安全和灵活的方法。在C语言的基础上,STL string 类增强了字符串操作的功能,使得在C++编程中更加便捷。以下是一些关键的C++ STL string 常用函数及其功能: 1. 构造函数: - `string(const char* s);`:此函数用于将C风格字符串`s`初始化为新字符串。 - `string(int n, char c);`:通过指定的字符`c`重复n次创建一个新的字符串。 - 默认构造函数和复制构造函数允许动态创建字符串,如`string s1;`和`string s2 = "hello";`。 2. 字符操作: - `const char& operator[](int n) const;`:返回第n个字符的引用,常量版本。`at(int n) const;`与之类似,但带有范围检查,当索引越界时抛出`std::out_of_range`异常。 - `char& operator[](int n);`:无范围检查的可修改版本,直接对指定位置的字符进行修改。 - `operator[]`和`at()`的区别在于安全性:前者不检查索引范围,后者提供这种检查。 3. 访问和转换: - `const char* data() const;`:返回一个指向内部字符存储的指针,但不是null-terminated。 - `const char* c_str() const;`:获取以null结尾的C风格字符串。 4. 动态调整: - `int capacity() const;`:返回当前可用的存储空间(元素个数),不包括null终止符。 - `int max_size() const;`:表示可以容纳的最大字符串长度,与系统资源有关。 - `int size() const;`:返回字符串中的实际字符数,包括null终止符。 - `int length() const;`:等同于`size()`,提供更明确的命名。 - `bool empty() const;`:检查字符串是否为空。 5. 调整大小和填充: - `void resize(int len, char c);`:将字符串长度调整为`len`,不足部分用字符`c`填充。 6. 输入输出操作: - C++ STL string 重载了`operator>>`和`operator<<`,允许从输入流(如`cin`)读取数据到字符串,以及将字符串写入输出流(如`cout`)。 - `getline(istream& in, string& s);`:从输入流中按换行符`\n`读取字符串至`s`。 7. 赋值操作: - `string& operator=(const string& s);`:用于将一个字符串`s`赋值给当前字符串。 - `string& assign(const char* s);`:直接将C风格字符串`s`复制到当前字符串。 C++ STL string 提供了一系列丰富的功能,使字符串操作变得更加安全且易于管理。掌握这些函数是C++编程中处理文本数据的基础,对于提升代码质量和效率至关重要。