我有一个字符串,如:
AAAbbbbbAAA
我想删除模式AAA
的所有出现以获取:
bbbbb
模式可以出现在字符串中的任何位置。
答案 0 :(得分:2)
假设:
string yourstring("AAAbbbAAA");
string removestring("AAA");
您可以在字符串上多次运行类似的内容:
yourstring.erase(yourstring.find(removestring), removestring.length());
当然,在使用string::find
之前,您必须检查string::erase
是否确实发现了事件。
答案 1 :(得分:0)
这是代码。它效率不高,但效果很好,而且代码很小。
string h = "AAAbbbAAAB";
int pos = h.find("AAA");
while(pos!=-1)
{
h.replace(pos, 3, "");
pos = h.find("AAA");
}
cout << h << endl;
只有你知道模式才有效。如果它不是您想要的,也许您正在寻找模式匹配算法,如KMP。