string中如果要删除对象1中所有的对象2含有的字符,是否有现成函数支持

[复制链接]
查看11 | 回复1 | 2021-1-27 05:40:47 | 显示全部楼层 |阅读模式
C++中要从string的一个对象中删除所有某个特定字符,可用如下代码
str.erase(std::remove(str.begin(),str.end(),'a'),str.end());
那么如果在string中有两个对象,如果要删除对象1中所有的对象2含有的字符,string或者algorithm中是否有现成的函数支持?
而不用再像下面这么麻烦的定义双层循环来删除?
stringstr1,str2;
getline(cin,str1);
getline(cin,str2);
string::iteratorite1;
string::iteratorite2;
for(ite1=str1.begin();ite1!=str1.end();ite1++)
{
for(ite2=str2.begin();ite2!=str2.end();ite2++)
{
if(*ite1==*ite2)
str1.erase(ite1);
}
}
for_each(str1.begin(),str1.end(),fun);

分 -->
回复

使用道具 举报

千问 | 2021-1-27 05:40:47 | 显示全部楼层
StringReplace(str,"要删除的字符串","",TReplaceFlags()
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行