删除空格时遇到问题.C++

Having Trouble removing white space. C++

本文关键字:问题 C++ 遇到 空格 删除      更新时间:2023-10-16

尝试获取输入字符串并从中删除空格。除非它到达空白区域,否则它也会删除之后的所有内容。

这是我的代码(从堆栈溢出的类似主题中解脱出来):

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

例如,如果我输入"1 +1",它返回"1"。我该如何解决这个问题?

这是我尝试过的完整示例:

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
string input;
string removeSpaces(string s){
    s.erase(remove(s.begin(),s.end(), ' '),s.end());
    return s;
}
int main(){
    getline(cin, input);
    removeSpaces(input);
    cout << input;
}

这将返回一个与输入相同的字符串,没有删除空格。

函数removeSpaces按值获取输入(它创建一个副本),因此它不会更改输入字符串。删除空格的字符串将从函数返回,因此您需要改用它。尝试:

string output = removeSpaces(input);
cout << output;