【C++】STL容器之string(修改操作)

本文详细介绍了C++string类中的修改函数,包括push_back和pop_back用于尾部操作,append处理字符串追加,operator+=拼接,insert插入元素,assign重置内容,erase删除部分字符,replace替换指定区间,以及swap进行字符串交换。这些函数在实际编程中十分重要,有助于灵活操作字符串数据。
摘要由CSDN通过智能技术生成

在这里插入图片描述

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤
📃个人主页 阿然成长日记 👈点击可跳转
📆 个人专栏: 🔹数据结构与算法🔹C语言进阶🔹C++
🚩 不能则学,不知则问,耻于问人,决无长进
🍭 🍯 🍎 🍏 🍊 🍋 🍒 🍇 🍉 🍓 🍑 🍈 🍌 🍐 🍍

前言

之前我们学习了string类中的有关容量大小,遍历的相关操作。本文将继续学习string类对象的修改函数。
在这里插入图片描述

string类的对象修改函数

一共有如下几种:

函数名说明
push_back在字符串后尾插字符c
pop_back删除字符串的最后一个字符
append在字符串后追加一个字符串
operator+=()在字符串后追加字符串str
insert在指定位置插入字符或字符串等操作
assign使用指定的字符串替换原字符串
erase删除字符串中的一部分
replace替换指定区间的字符串
swap收缩到合适大小

下面的演示中,都只用到了下面两个s1,s2.

string s1("hello world!");
string s2("abc");

1.push_back和pop_back

在这里插入图片描述

  • 它的重载只有一个,功能:在字符串后尾插字符c

使用演示:
在这里插入图片描述
注意:push_back()仅能尾插一个字符.

pop_back:与其相反:功能是删除最后一个字符

2.append

在这里插入图片描述
它的重载有六个,接下来整理一下

string& append (const string& str);/追加一个string对象
string& append (const string& str, size_t subpos, size_t sublen);追加一个string对象中的指定字符串长度
string& append (const char* s);追加一个字符串
string& append (const char* s, size_t n);追加字符串中的前n个字符串
string& append (size_t n, char c);追加n个字符
  • 接下来,展示一下他们的使用方式

先创建两个string类

string s1("hello world!");
string s2("aaa");

(1)string& append (const string& str);

  • 追加一个字符串或者对象
    在这里插入图片描述

(2)string& append (const string& str, size_t subpos, size_t sublen);

  • 功能:追加一个string对象中的指定字符串长度
  • subpos:起始位置
  • sublen:长度

在这里插入图片描述

(3)string& append (const char s, size_t n);*

  • 追加字符串中的第n个字符串开始到结束的字符串

在这里插入图片描述
(4)string& append (size_t n, char c);

  • 增加n个字符
    在这里插入图片描述

3.operator+=(string)

在这里插入图片描述

  • 功能:它一共有三个重载形式,分别是拼接一个string类的对象、一个字符串、一个字符
    在这里插入图片描述

4.insert

在这里插入图片描述

重载功能
string& insert (size_t pos, const string& str);在指定位置插入一个string对象
string& insert (size_t pos, const string& str, size_t subpos, size_t sublen);在指定位置插入一个string对象里的一部分
string& insert (size_t pos, const char* s);在指定位置插入一个字符串
string& insert (size_t pos, const char* s, size_t n);在指定位置插入一个字符串的前n个字符
string& insert (size_t pos, size_t n, char c);在指定位置插入n个字符
void insert (iterator p, size_t n, char c);在指定迭代器的位置插入n个字符
iterator insert (iterator p, char c);/在指定迭代器的位置插入一个字符,并且返回一个迭代器的位置

根据重载格式,自行实现相应的功能,也是十分见简单。但是这些操作十分消耗时间和空间。

  • 在指定位置插入一个string对象:在s1中第5个位置插入s2.
    在这里插入图片描述

  • 在在指定位置插入一个字符串

5.assign

  • 功能:为字符串赋一个新值,替换其当前内容。
    在这里插入图片描述
  • 它也有许多重载,但是用的不多,可以自己了解。主要就是一个覆盖。
    在这里插入图片描述

6.erase

在这里插入图片描述
一共有三个重载

重载功能
string& erase (size_t pos = 0, size_t len = npos);删除从pos位置开始到最后的字符,npos是缺省值
iterator erase (iterator p);删除指定位置元素,注意是迭代器指向
iterator erase (iterator first, iterator last);删除指定范围元素,注意使用迭代器指向
  • 删除从pos位置开始的元素
    在这里插入图片描述

  • 删除某一范围区间的元素
    在这里插入图片描述

  • 一般更多的erase被用来进行头删,如下两种方法
    在这里插入图片描述

注意:erase这个接口和insert一样,在修改原串的时候会造成大量的数据挪动,特别是在头删除的时候,需要挪动[n - 1]个数据。

7.replace

在这里插入图片描述

这个函数的重载类型非常多,但是只用记住常用的就行。

简单来说,这个函数的功能就是替换字符串。
拿几个常用的来演示一下吧!

  • 在指定区间位置,替换。
    在这里插入图片描述

它会删除指定区间元素,然后把你的指定元素放进去,数组的大小可能会发生变化。

8.swap

在这里插入图片描述
功能:在string中可以交换两个字符串。但是swap在其他容器中也同样可以使用。

  • 交换s1,s2

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

阿然成长日记

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

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

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

打赏作者

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

抵扣说明:

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

余额充值