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

时间:2019-04-29 00:12:19

标签: 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;
}

2 个答案:

答案 0 :(得分:6)

问题不在于功能(据我所知)。就是您读取输入的方式。

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

要阅读整行内容,请使用

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

答案 1 :(得分:0)

因为std::cin >> input仅读取“你好”。