• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

c++ string的erase删除方法

c++ 搞代码 4年前 (2022-01-06) 68次浏览 已收录 0个评论

这篇文章主要介绍了c++ string的erase删除方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

之前不是很清楚c++中string如何删除元素,现在记录一下。

(参考自 c++ primer plus 第六版 模版类 string)

string中提供的成员函数可以用来删除字符串中的字符,这里主要介绍erase方法

erase方法原型

1. basic_string & erase(size_type pos=0, size_type n=npos);

即从给定起始位置pos处开始删除, 要删除字符的长度为n, 返回值修改后的string对象引用

示例[1]

 #include #include using namespace std; int main(){ string str = "hello c++! +++"; // 从位置pos=10处开始删除,直到结尾 // 即: " +++" str.erase(10); cout << '-' << str << '-' << endl; // 从位置pos=6处开始,删除4个字符 // 即: "c++!" str.erase(6, 4); cout << '-' << str << '-' << endl; return 0; } 

输出

2. iterator erase(const_iterator position)

删除迭代器位置处的单个字符, 并返回下个元素的迭代器

3. iterator erase(const_iterator first, const_iterator last)

删除迭代器[first, last)

来源gaodai^.ma#com搞#代!码网

区间的所有字符,返回一个指向被删除的最后一个元素的下一个字符的迭代器.

示例[2,3]:

 #include #include using namespace std; int main(){ string str = "hello c++! +++"; // 删除"+++"前的一个空格 str.erase(str.begin()+10); cout << '-' << str << '-' << endl; // 删除"+++" str.erase(str.begin() + 10, str.end()); cout << '-' << str << '-' << endl; return 0; } 

输出

补充

除了erase方法用于删除string中的元素, void pop_back();方法也可以用来删除元素, 但是只能删除string的最后一个元素

查找方法

在使用erase删除函数的时候,经常会和查找函数一起使用

*find*(**)系列方法参数可以是char 或者 string 类型, 为待查找的目标, 返回值为 size_type;当 查找不到目标时,返回值为 npos, 可以这样判断

 string longer("That's a funny hat."); //size_type loc1 = longer.find("hat"); // 存在 size_type loc1 = longer.find("hello"); //不存在 if (loc1 == string::npos) cout<< "not found" <<endl;

以上就是c++ string的erase删除方法的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:c++ string的erase删除方法

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址