c++ - 无法删除空格。 C++

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

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

最佳答案

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

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

关于c++ - 无法删除空格。 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26961300/

相关文章:

c++ - 为什么私有(private)继承对象允许成员函数将 derived* 强制转换为 base* 但外部人员不允许?

java - 从 C++ 套接字读取 Java 中的数据

c++ - vector 模板参数无效

c++ - (C++) 带有 SPI_SetMouse 的 SystemParametersInfo 似乎不会改变光标速度

c++ - 如何根据输入 C++ 更改返回类型?

c++ - 编译器是否将普通的 getter 方法优化为简单的字段访问?

c++ - 如果我以静态库为目标进行链接,OMNeT++ 模拟器不会更新

c# - 你将如何通过 com 传递 C# 对象?

c++ - 如何使用 if...else 语句从一组随机生成的数字中提取特定数字?

c++ - 输入以空格分隔的数字