如何修复我的代码以删除字符串中的空格?

1 c++ c++14

因此,我试图从字符串中删除空格,但是如果输入例如“ hello world”,则仅返回“ hello”,而不返回“ helloworld”。我不确定为什么要这样做。

string removeSpaces(string str)
{
    str.erase(remove(str.begin(), str.end(), ' '), str.end());
    return str;
}

int main()
{
    std::string input;
    std::cout << "Enter word: ";
    std::cin >> input;

    input = removeSpaces(input);
    std::cout << input;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

bol*_*lov 6

问题不在于功能(据我所知)。它与您读取输入的方式相同。

std::cin >> input将读取直到空白。因此input将是“你好”。

阅读整行使用

std::getline(std::cin, input);
Run Code Online (Sandbox Code Playgroud)

  • @Jello当然。如果您有满意的答案,请确保将其标记为“已接受”,这样您的问题就不会保持打开状态。 (2认同)