所以我试试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
答案 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的元素是字符,而不是字符串。