我有一个函数可以从c ++字符串中删除所有出现的子字符串。但我希望它在删除每个子字符串之前或之后插入空格。我的功能如下:
void removeSubstrs(string& s, string& p) {
string::size_type n = p.length();
for (string::size_type i = s.find(p);
i != string::npos;
i = s.find(p))
s.erase(i, n);
}
例如,如果我输入“AZAZBLACKAZAZBERRYAZ”,我想要输出“BLACK BERRY”....
答案 0 :(得分:1)
如果您想要的是这样的话:
假设“ - ”为空格
输入:“AZAZBLACKAZAZBERRYAZ”和“AZ”
输出:“ - BLACK - BERRY-”
那么,这可能会对你有所帮助:
void removeSubstrs(string& s, string& p) {
string::size_type n = p.length();
for (string::size_type i = s.find(p); i != string::npos; i = s.find(p))
{
s.replace(i, n, 1, ' ');
//OR
//s.erase(i, n);
//s.inset(i, ' '); //Add this line
}
}