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

How to replace all occurrances of a substring with a space in c++ string

本文关键字:字符串 空格 何用 c++ 替换      更新时间:2023-10-16

我有一个函数,它从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);
}

例如,如果我输入"azazblackazazberryz",我希望输出"黑莓"....

如果您想要这样做:

假设"-"为空格
输入:"azazblackazazberryz"answers"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
    }
}