String 在c+中替换和删除字符串中的字符+;?
这个程序给出了错误的输出,基本上我想删除指定的字符并用“g”替换它,例如:所有闪烁的字符都不是金色的如果用户输入o,那么输出应该是所有闪烁的字符都是ngt ggld,但程序从n开始删除所有字符String 在c+中替换和删除字符串中的字符+;?,string,c++11,String,C++11,这个程序给出了错误的输出,基本上我想删除指定的字符并用“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
#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;
}
#包括
使用名称空间std;
int main()
{
字符串输入(“所有闪光都不是金子”);
字符a;
cin>>a;
对于(int i=0;i
第二个参数(len)是要擦除的字符数。
您必须输入1而不是i+1:
input.erase(i,1);
为什么不直接替换它?用以下内容替换for
循环:
for (char& c : input)
{
if (c == a)
c = 'g';
}
for (char& c : input)
{
if (c == a)
c = 'g';
}