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);