我不知道我的代码有什么问题:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string test;
cin>>test;
if (test[4] == ' ')
{
test[4] = '+';
}
cout<<test<<endl;
system("PAUSE");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我基本上是要求用户给我一个字符串(该字符串将是“星际迷航”),然后,我希望将该字符串替换为“+”。出于某种原因,每当我尝试时我都会得到这个。但是,当我运行此命令时,会弹出一个对话框,显示“调试断言失败”和“表达式:字符串下标超出范围”。
我通常会避免自己编写循环,而是在可以时使用算法:
std::getline(std::cin, test);
std::replace(test.begin(), test.end(), ' ', '+');
Run Code Online (Sandbox Code Playgroud)