C ++如何将所有`\`转换成`/`在字符串里面?

时间:2011-08-23 04:02:08

标签: c++ string replace

所以我试试std::replace(diff_path.begin(), diff_path.end(), "\\", "/");但似乎没有在我的视觉工作室上编译。怎么做 - 如何将所有\变成/里面的字符串?

Error   3   error C2446: '==' : no conversion from 'const char *' to 'int'  c:\program files (x86)\microsoft visual studio 10.0\vc\include\algorithm    1311    1   CloudServerPrototype

Error   5   error C2440: '=' : cannot convert from 'const char [2]' to 'char'   c:\program files (x86)\microsoft visual studio 10.0\vc\include\algorithm    1312    1   CloudServerPrototype    

Error   4   error C2040: '==' : 'int' differs in levels of indirection from 'const char [2]'    c:\program files (x86)\microsoft visual studio 10.0\vc\include\algorithm    1311    1   CloudServerPrototype

2 个答案:

答案 0 :(得分:9)

您需要使用字符文字,而不是字符串文字:

std::replace(diff_path.begin(), diff_path.end(), '\\', '/');
                                                 ^~~~  ^~~

value_type的{​​{1}}为std::string(字符串中的每个元素都是单个字符)。

答案 1 :(得分:4)

你在问题​​标题中做得对。修正:

 std::replace(diff_path.begin(), diff_path.end(), '\\', '/');

std :: string的元素是字符,而不是字符串。