麻烦去除空白区域。 C ++

时间:2014-11-16 19:46:01

标签: c++

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

这是我的代码(在stackoverflow上找到类似主题):

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;
}

返回与输入相同的字符串,不删除空格。

1 个答案:

答案 0 :(得分:3)

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

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