C++中string类型的erase()函数详解

标准库类型string表示可变长的字符序列。可以通过string类的erase()函数来对该字符序列进行删除操作。erase()函数共有3种格式,分别用来删除指定位置的字符、删除指定长度的字符串和删除指定范围的字符串。

1 删除指定位置的字符

erase()函数用于删除指定位置字符的格式为

iterator erase (iterator p);

其中,参数iterator是迭代器,即删除迭代器p指向的字符。返回值为删除后的字符串。

2 删除指定长度的字符串

erase()函数用于删除指定长度字符串的格式为

string& erase(size_t pos=0, size_t len = npos);

其中,参数pos表示要删除字符串的起始位置,其默认值是0;len表示要删除字符串的长度,其默认值是string::npos。返回值是删除后的字符串。

相关链接:

string::npos,是string类型的静态常量成员,表示size_t类型的最大值。在用于表示string长度时,实际上就是指定了string类型对象的长度。所以,对于erase()函数的第二种格式,其默认参数的含义就是将string中的所有内容都删除。

3 删除指定范围的字符串

erase()函数用于删除指定范围字符串的格式为

iterator erase (iterator first, iterator last);

其中,first和last分别表示范围的起点和终点。需要注意的是,该范围包含first,但是不包含last,即该范围是[first, last)。erase()函数的返回值是删除后的字符串。

4 相关代码

std::string str("This is an example sentence.");

str.erase(10, 8);                      

str.erase(str.begin() + 9);          

str.erase(str.begin() + 5, str.end() - 9);

str是string类型的变量,首先调用erase()函数在str中删除指定长度的字符串,即删除从第10位开始,长度为8的字符串。需要注意的是,str的起始位置是从0开始的。删除的str变为“This is an sentence.”接下来调用erase()函数删除指定位置的字符,str.begin()是获取str起始位置处的迭代器,删除str.begin()+9迭代器对应的字符,即字符“n”。此时,str的值变为“This is a sentence.”。最后,调用erase()函数删除指定范围的字符串。最终,str的值变为“This sentence.”。

  • 49
    点赞
  • 131
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值