c++ - 从 C++ 中的字符串中删除空格

标签 c++ string

我目前正在学习 C++。我正在尝试编写一种方法来删除字符串中的空格并返回没有空格的字符串 这是我的代码:

string removeSpaces(string input)
{
  int length = input.length();
  for (int i = 0; i < length; i++) {
     if(input[i] == ' ')
        input.erase(i, 1);
  }
  return input
}

但这有一个错误,因为它不会删除两个或三个空格。 我在网上找到了这个

s.erase(remove(s.begin(),s.end(),' '),s.end());

但显然这是返回一个 iterator (如果我理解得很好) 有什么方法可以将 iterator 转换回我的字符串 input? 最重要的是这是正确的方法吗?

最佳答案

std::string::erase 返回一个迭代器,但您不必使用它。您的原始字符串已被修改。

string removeSpaces(string input)
{
  input.erase(std::remove(input.begin(),input.end(),' '),input.end());
  return input;
}

关于c++ - 从 C++ 中的字符串中删除空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16329358/

相关文章:

c++ - 如何获取我的电脑外部IP地址?

c++ - 为什么动态链接的二进制文件显示硬编码的 SO 名称?

string - 读取 plist 数据并将其转换为字符串 (Swift)

java - 在 Java 中从一种方法调用 String 到另一种方法

regex - 如何修剪和替换字符串

c++ - 如何获取 ISAPI 扩展中的所有 ServerVariables

c++ - boost:type_erasure 和 boost::iterator_facade 之间的冲突

c++ - 如何生成像列表理解这样的 vector

swift - 如何以特定方式从 Swift 中的字符串中提取数字

python - 如何查找文件/字符串中字符串之间的字符串数 - python