我正在尝试替换我用空格解析的每一行中的所有空格字符。关键是:
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,但会接受一个答案,解释为什么这种情况太复杂了。感谢。
答案 0 :(得分:4)
我认为你想用单引号来表示字符空间。字符串由字符组成,而不是字符串。
replace_if( theString.begin(), theString.end(), ::isspace, ' ');