C++中string类的操作方法大全

在 C++ 中,string 类型是一种非常灵活的数据类型,用于处理文本。这里是 string 类的一些主要操作方法:

构造函数:

  • string(): 创建一个空字符串。
  • string(const string& str): 复制构造函数。
  • string(const string& str, size_type pos, size_type len = npos): 从另一个字符串中创建子字符串。
  • string(const char* s): 从 C 风格字符串创建字符串。
  • string(const char* s, size_type n): 从 C 风格字符串的前 n 个字符创建字符串。
  • string(size_type n, char c): 创建一个重复 n 次字符 c 的字符串。

赋值操作:

  • string& operator=(const string& str): 赋值运算符。
  • string& operator=(const char* s): 将 C 风格字符串赋给当前字符串。
  • string& operator=(char c): 将字符 c 赋给当前字符串。

元素访问:

  • char& operator[](size_type pos): 访问指定位置的字符。
  • const char& operator[](size_type pos) const: 访问指定位置的字符(const 版本)。
  • char& at(size_type pos): 类似于 operator[],但包含边界检查。
  • const char& at(size_type pos) const: 边界检查的访问(const 版本)。
  • char& back(): 访问最后一个字符。
  • const char& back() const: 访问最后一个字符(const 版本)。
  • char& front(): 访问第一个字符。
  • const char& front() const: 访问第一个字符(const 版本)。

字符串操作:

  • string& operator+=(const string& str): 连接另一个字符串。
  • string& append(const string& str): 连接另一个字符串。
  • string& insert(size_type pos, const string& str): 在指定位置插入另一个字符串。
  • string& erase(size_type pos = 0, size_type len = npos): 从字符串中移除部分字符。
  • void swap(string& str): 交换两个字符串的内容。
  • const char* c_str() const: 返回 C 风格的字符串表示。
  • const char* data() const: 返回字符串的数组表示。
  • size_type find(const string& str, size_type pos = 0) const: 查找子字符串。

大小和容量:

  • size_type size() const: 返回字符串的长度。
  • size_type length() const: 与 size() 类似,返回字符串的长度。
  • size_type max_size() const: 返回字符串可能的最大长度。
  • void resize(size_type n, char c): 调整字符串的长度。
  • size_type capacity() const: 返回字符串当前的容量。
  • void reserve(size_type n = 0): 请求改变字符串的容量。
  • bool empty() const: 检查字符串是否为空。

比较操作:

  • 重载了各种形式的 operator==, operator!=, operator<, operator<=, operator>, operator>=,用于比较字符串。

子串:

  • string substr(size_type pos = 0, size_type len = npos) const: 返回一个子字符串。

这些方法提供了对字符串的广泛操作,包括创建、修改、比较和查询。这只是 std::string 类的一个概览,详细信息可以在 C++ 标准库文档中找到。


C++中string类的操作方法大全
https://acm.nanyan.cc/posts/76d3.html
作者
nanyan
发布于
2023年11月15日
许可协议