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

Hudie.
Java领域新星创作者
2019-03-02 11:10:18
C++中要从string的一个对象中删除所有某个特定字符, 可用如下代码

str.erase(std::remove(str.begin(), str.end(), 'a'), str.end());

那么如果在string中有两个对象,如果要删除对象1中所有的对象2含有的字符,string或者algorithm中是否有现成的函数支持?
而不用再像下面这么麻烦的定义双层循环来删除?

string str1, str2;
getline(cin, str1);
getline(cin, str2);

string::iterator ite1 ;
string::iterator ite2 ;
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);
...全文
120 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
xdn1ce 2019-03-04
  • 打赏
  • 举报
回复
StringReplace(str,"要删除的字符串","",TReplaceFlags()<<rfReplaceAll);

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧