c++学习:字符串string类

C语言中对字符串的表示通常用指针,新手会面临内存泄漏或者段错误等众多问题。

在 C++ 中, string 类是标准库的一部分,用于表示和操作字符串。它是对传统的 C 风格字符串(以空 字符 '\0' 结尾的字符数组)的一个更安全、更方便的封装。 string 类是在 头文件中定义 的,并且位于 std 命名空间中

c++中提供的string类功能

  • 动态大小:与 C 风格的字符串不同, string 对象可以动态改变大小,这意味着你可以在运行时添 加或移除字符,而不需要担心分配和释放内存。
  • 安全性:由于 string 管理其自己的内存,因此减少了内存泄漏和缓冲区溢出的风险。
  • 方便的成员函数: string 类提供了各种操作字符串的方法,如 append() (添加)、 insert() (插入)、 erase() (删除)、 substr() (获取子字符串)等。
  • 操作符重载: string 类重载了多个操作符,使得字符串比较、连接和赋值更加直观。例如,你可 以使用 + 操作符来连接两个字符串,或者使用 == 操作符来比较两个字符串是否相等。
  • 迭代器支持:像其他标准库容器一样, string 类也支持迭代器,使得你可以使用迭代器来遍历字 符串中的字符。
  • 与 C 风格字符串的兼容性: string 类提供了与 C 风格字符串互操作的功能,例如,你可以使用 c_str() 方法来获取一个与 C 风格字符串兼容的、以 null 结尾的字符数组。

常用成员函数及其功能和参数

  • 函数名
  • length() 或 size() 返回字符串的长度 返回size_t
  • empty() 检查字符串是否为空 返回bool
  • append(const string& str) 向字符串末尾添加另一个字符串 返回string&
    • str :要追加的字符串
  • substr(size_t pos = 0, size_t len = npos) 返回一个子字符串 返回string
    • pos :子字符串 的起始位置 len :子字符串 的长度
  • find(const string& str, size_t pos = 0) 查找子字符串出现的位置 返回size_t
    • str :要查找的 字符串 pos :搜索起始 位置
  • compare(const string& str) 比较两个字符串 返回int
    • str :要比较的字符串
  • erase(size_t pos = 0, size_t len = npos) 删除字符串中的一部分 返回string&
    • pos :起始位置 len :要删除的 长度
  • insert(size_t pos, const string& str) 在指定位置插入字符串 返回string&
    • pos :插入位置 str :要插入的 字符串
  • replace(size_t pos, size_t len, const string& str) 替换字符串中的一部分 返回string&
    • pos :起始位置 len :要替换的 长度 str :替换的字 符串
  • c_str() 返回 C 风格字符串表示 返回const char*
  • operator[] (size_t pos) 访问指定位置的字符 返回char&
    • pos :字符位置

示例

#include <iostream>
#include <string>
int main() {
    std::string str = "Hello, world!";
    std::cout << str << std::endl; // 输出字符串
    str += " I am a C++ string."; // 字符串连接
    std::cout << str << std::endl;
    std::string substr = str.substr(7, 5); // 获取子字符串
    std::cout << "Substring: " << substr << std::endl;
    return 0;
}

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

码农小白

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

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

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

打赏作者

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

抵扣说明:

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

余额充值