【问题标题】:Removing characters from a string using erase and remove使用擦除和删除从字符串中删除字符
【发布时间】:2014-02-20 16:55:53
【问题描述】:

我在 Stack Overflow 和其他论坛上找到了这个解决方案,用于从字符串中删除字符。假设我想从字符串中删除空格:

currentLine.erase( std::remove( currentLine.begin(), currentLine.end(), ' ' ), currentLine.end() );

其中 currentLine 是字符串的名称。

这种东西似乎对人们有用,但如果我使用它,我会得到:

/local/yrq12edu/Desktop/Bens_C++_Utilities/simuPOPtoFASTA/simuPOP2FASTA.cpp|54|error: cannot convert 'std::basic_string<char>::iterator {aka __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >}' to 'const char*' for argument '1' to 'int remove(const char*)'|

作为编译错误。 我认为这与 std::remove 函数返回的迭代器有关,该迭代器不适用于擦除方法,但显然它应该可以工作。我该如何解决这个问题?

【问题讨论】:

  • 能否展示一下currentLine的声明。
  • 发布一个简短的测试用例。

标签: c++ string stl-algorithm


【解决方案1】:

您包含了哪些标题?看起来编译器看到的唯一std::remove&lt;cstdio&gt; 中的那个(可能包含在&lt;iostream&gt; 或其他iostream 标头之一中)。如果您包含&lt;algorithm&gt;,您应该会找到正确的。

【讨论】:

    猜你喜欢
    • 2013-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-26
    • 2013-09-18
    • 2011-11-22
    相关资源
    最近更新 更多