我需要调试我的代码的帮助。我已经尝试了很多事情,但是似乎无法从字符串中删除字符。
我也不太了解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;
}