如果 char 是空格,则在 C++ 中将其替换为“+”

Chr*_*ett 2 c++ char

我不知道我的代码有什么问题:

#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)

我基本上是要求用户给我一个字符串(该字符串将是“星际迷航”),然后,我希望将该字符串替换为“+”。出于某种原因,每当我尝试时我都会得到这个。但是,当我运行此命令时,会弹出一个对话框,显示“调试断言失败”和“表达式:字符串下标超出范围”。

Jer*_*fin 5

我通常会避免自己编写循环,而是在可以时使用算法:

std::getline(std::cin, test);

std::replace(test.begin(), test.end(), ' ', '+');
Run Code Online (Sandbox Code Playgroud)