使用string中find_first_of函数和erase函数。
其中find_first_of参数为(size_type型的下标值,string字符串),返回参数为size_type型的下标值。
而erase函数参数为(指向元素的迭代器),返回为指向下一个元素的迭代器。
所以要对迭代器和下标两种类型互相转化一下。
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str;
string sf="aoe";
getline(cin,str);
string::size_type j=0;
string::iterator iter0=str.begin(),iter1=str.begin();
while((j=str.find_first_of(sf,j))!=string::npos)
{
iter1=str.begin();
iter1+=j;
iter1=str.erase(iter1);
j=iter1-iter0;
}
cout<<str;
}