Как исправить мой код, чтобы удалить пробелы в строке? - PullRequest
1 голос
/ 29 апреля 2019

Итак, я пытаюсь удалить пробелы из строки, но если я введу, например, «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 ]

6 голосов
/ 29 апреля 2019

Проблема не с функцией (насколько я вижу). Это как вы читаете ввод.

std::cin >> input будет читать до пробела. Так что input будет "Привет".

Чтобы прочитать всю строку, используйте

std::getline(std::cin, input);
0 голосов
/ 29 апреля 2019

Потому что std::cin >> input читает только "привет".

...