这个程序提供了错误的输出,基本上我想要删除指定的字符,并用' g替换它... ...例如:如果用户输入o那么闪闪发光的那些都不是黄金输出应该是闪闪发光的全部是ngt ggld但程序正在从n开始删除所有字符
#include <iostream>
using namespace std;
int main()
{
string input(" ALL GLItters are not gold");
char a;
cin>>a;
for(int i=0;i<input.size();i++)
{
if(input.at(i)==a)
{
input.erase(i,i+1);
input.insert(i,"g");
}
}
cout<<"\n";
cout<<input;
}
答案 0 :(得分:1)
string& erase (size_t pos = 0, size_t len = npos);
第二个参数(len)是要擦除的字符数。 你必须把1而不是i + 1:
input.erase(i,1);
答案 1 :(得分:1)