如何用c ++字符串中的空格替换子字符串的所有出现

时间:2015-09-26 08:05:33

标签: c++ string replace insert

我有一个函数可以从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”....

1 个答案:

答案 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
    }
}