我需要调试我的代码的帮助。我已经尝试了很多事情,但是似乎无法从字符串中删除字符。

我也不太了解std :: erase的工作原理,不确定是否可以用它擦除字符。

#include <iostream>
#include <string>

using namespace std;
int main(){

    string s;
    char n;
    cin >> s;
    cin >> n;

    for (int i = 0;i < s.length(); i++) {
        s.erase (n[i]);
    }

    cout << s;

    return 0;

}


编辑:抱歉,如此含糊。我意识到了尝试从数组而不是预期的字符串中删除某些内容的问题。借助已发布的答案;下面附有更新的代码,该代码以我想要的方式工作。谢谢您的反馈!

#include <iostream>
#include <string>

using namespace std;
int main(){

string s;
char n;
cin >> s;
cin >> n;

for (int i = 0; i < s.length(); i++) {
    while (s[i] == n) {
      s.erase(i, i);
    }
}

cout << s;

return 0;

}

最佳答案

如果您对要执行的操作进行了适当的描述,将很有帮助。这个问题有点模糊,但是我想您正在尝试从字符串中删除给定的char,如果这是您要尝试的操作,那么这是一个基于您已经提供的工作示例。

#include <iostream>
#include <string>

using namespace std;
int main(){

    string s;
    char n ;

    cin >> s;
    cin >> n;
    for (int i = 0; i < s.length(); i++) {
        if (s[i] == n) {

          s.erase(i, 1);

        }
    }

    cout << s;

    return 0;

}

07-24 19:04
查看更多