你如何使用replace_if与字符串?

时间:2011-05-05 21:39:12

标签: c++

我正在尝试替换我用空格解析的每一行中的所有空格字符。关键是:

replace_if( theString.begin(), theString.end(), ::isspace, " ");

我可以找到的(部分)错误是:

  

在函数'void std :: replace_if(_ForwardIterator,_ForwardIterator,_Predicate,const _Tp&)[with _ForwardIterator = __gnu_cxx :: __ normal_iterator,std :: allocator> >,_ Prered = int(*)(int)throw(),_ Tp = char [2]]':   从这里实例化

在这种情况下,replace_if的正确用法是什么?我没有访问Boost,所以我更喜欢纯C ++的建议。我已经尝试将“”改为字符串(“”)。我已经尝试制作自己的谓词(我是新手,所以不要完全统治这个解决方案)。我更喜欢使用replace_if,但会接受一个答案,解释为什么这种情况太复杂了。感谢。

1 个答案:

答案 0 :(得分:4)

我认为你想用单引号来表示字符空间。字符串由字符组成,而不是字符串。

replace_if( theString.begin(), theString.end(), ::isspace, ' ');