【c++】 string类常用的函数

该文章已生成可运行项目,

以下是 C++ 中 string 类常用的函数:

一、构造函数和析构函数

  • string():默认构造函数,创建一个空的字符串。
  • string(const char* s):使用 C 风格的字符串 s 初始化 string 对象。
  • string(size_t n, char c):创建一个由 n 个字符 c 组成的字符串。
  • ~string():析构函数,释放 string 对象占用的资源。

二、基本操作函数

  • size_t length() constsize_t size() const:返回字符串的长度(字符数量,不包括 '\0')。
  • bool empty() const:判断字符串是否为空,若为空返回 true,否则返回 false
  • void clear():清空字符串,使其长度为 0。

三、元素访问函数

  • char& operator[](size_t pos):通过下标访问字符串中的字符,可修改字符。
  • const char& operator[](size_t pos) const:通过下标访问字符串中的字符,不可修改字符。
  • char& at(size_t pos):通过下标访问字符串中的字符,可修改字符,若越界会抛出 out_of_range 异常。
  • const char& at(size_t pos) const:通过下标访问字符串中的字符,不可修改字符,若越界会抛出 out_of_range 异常。

四、修改字符串的函数

  • string& operator+=(const string& str):将 str 追加到当前字符串末尾。
  • string& operator+=(const char* s):将 C 风格字符串 s 追加到当前字符串末尾。
  • string& operator+=(char c):将字符 c 追加到当前字符串末尾。
  • string& append(const string& str):将 str 追加到当前字符串末尾,等同于 +=
  • string& append(const char* s):将 C 风格字符串 s 追加到当前字符串末尾。
  • string& append(size_t n, char c):将 n 个字符 c 追加到当前字符串末尾。
  • string& insert(size_t pos, const string& str):在 pos 位置插入 str
  • string& insert(size_t pos, const char* s):在 pos 位置插入 C 风格字符串 s
  • string& erase(size_t pos = 0, size_t len = npos):从 pos 位置开始删除 len 个字符,npos 表示删除到末尾。

五、比较函数

  • int compare(const string& str) const:比较当前字符串和 str 的大小,返回值为负数、零或正数,分别表示小于、等于或大于。
  • int compare(const char* s) const:比较当前字符串和 C 风格字符串 s 的大小。

六、搜索和查找函数

  • size_t find(const string& str, size_t pos = 0) const:从 pos 位置开始查找 str 的首次出现位置,未找到返回 npos
  • size_t find(const char* s, size_t pos = 0) const:从 pos 位置开始查找 C 风格字符串 s 的首次出现位置,未找到返回 npos
  • size_t find(char c, size_t pos = 0) const:从 pos 位置开始查找字符 c 的首次出现位置,未找到返回 npos
  • size_t rfind(const string& str, size_t pos = npos) const:从 pos 位置开始逆向查找 str 的首次出现位置,未找到返回 npos
  • size_t rfind(const char* s, size_t pos = npos) const:从 pos 位置开始逆向查找 C 风格字符串 s 的首次出现位置,未找到返回 npos
  • size_t rfind(char c, size_t pos = npos) const:从 pos 位置开始逆向查找字符 c 的首次出现位置,未找到返回 npos

七、子串函数

  • string substr(size_t pos = 0, size_t len = npos) const:从 pos 位置开始提取长度为 len 的子串,若 lennpos 或超出范围,则提取到末尾。

八、转换函数

  • const char* c_str() const:将 string 对象转换为 C 风格的字符串。

示例代码

#include <iostream>
#include <string>

int main() {
    std::string str1 = "Hello";
    std::string str2("World");
    std::string str3 = str1 + str2; // 使用 operator+ 连接字符串
    std::cout << "str3: " << str3 << std::endl;

    str1.append(", C++"); // 使用 append 追加字符串
    std::cout << "str1: " << str1 << std::endl;

    size_t len = str1.length(); // 获取字符串长度
    std::cout << "Length of str1: " << len << std::endl;

    if (str1.find("C++")!= std::string::npos) { // 查找子串
        std::cout << "Found 'C++' in str1" << std::endl;
    }

    std::string sub = str1.substr(7, 3); // 提取子串
    std::cout << "Substring: " << sub << std::endl;

    char cstr[100];
    strncpy(cstr, str1.c_str(), 100); // 使用 c_str 转换为 C 风格字符串
    std::cout << "C-style string: " << cstr << std::endl;

    return 0;
}

代码解释

  • 首先,使用不同的构造函数创建了 str1str2 两个 string 对象。
  • 通过 operator+str1str2 连接得到 str3 并输出。
  • 使用 append 函数在 str1 后面追加 ", C++" 并输出。
  • 使用 length 函数获取 str1 的长度。
  • 使用 find 函数查找 "C++" 是否在 str1 中,如果找到输出相应信息。
  • 使用 substr 函数从 str1 中提取子串。
  • 使用 c_str 函数将 str1 转换为 C 风格字符串,并复制到 cstr 中进行输出。

这些函数构成了 string 类的核心功能,使 C++ 中的字符串处理变得非常方便和灵活,避免了 C 风格字符串处理中容易出现的缓冲区溢出等问题。同时,string 类还提供了许多其他的实用函数,例如 replace 等,可以根据具体需求进行使用。

本文章已经生成可运行项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小镇学者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值