c++ remove 删除string内所有指定的字符
对于字符需要删除所有的,想要得到结果,该如何处理呢?可以配合和一起处理为什么要上面那样写呢?需要了解下remove的用法可以得到的输出为 ,似乎和我们想要的不一致。因为这个函数没有调整容器的大小,只是把要得到的结果移动到了最前面。返回的迭代器指向后的。因此还要配合把从迭代器开始后面的内容删除...
·
c++ remove 删除string内所有指定的字符
对于字符"_L__R__R_"
需要删除所有的'_'
,想要得到结果LRR
,该如何处理呢?
可以配合remove
和erase
一起处理
string s="_L__R__R_";
s.erase(remove(s.begin(), s.end(), '_'), s.end());
cout<<s<<endl;//LRR
为什么要上面那样写呢?需要了解下remove的用法
auto it=remove(s.begin(), s.end(), '_');
cout<<s<<endl;
可以得到s
的输出为 LRR_R__R_
,似乎和我们想要的LRR
不一致。
因为remove
这个函数没有调整容器的大小,只是把要得到的结果移动到了最前面。remove
返回的it
迭代器指向LRR
后的_
。
因此还要配合erase
把LRR_R__R_
从it
迭代器开始后面的内容删除
s.erase(it,s.end());
更多推荐
已为社区贡献1条内容
所有评论(0)