使用擦除和删除从字符串中删除字符



我在堆栈溢出和其他论坛上找到了这个解决方案,用于从字符串中删除字符。假设我想从字符串中删除空格,我会这样做:

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 函数返回的迭代器有关,该函数不适用于擦除方法,但显然它应该有效。我该如何解决这个问题?

你包含了哪些标题? 看起来编译器看到的唯一std::remove<cstdio>中的那个(可能通过<iostream>或其他iostream heaaders之一包含在内)。 如果包括<algorithm>,则应找到正确的。

相关内容

  • 没有找到相关文章

最新更新