所以我有一个字符串:
string path = "C:\Users\Richard\Documents\Visual Studio 2010\Projects\Client\Debug";
我想用正斜杠替换其中的所有反斜杠,所以它看起来像:
C:/Users/Richard/Documents/Visual Studio 2010/Projects/Client/Debug
这不起作用:
string toReplace = "\\";
path.replace(path.find(toReplace), toReplace.length(), "/");
显然,\是一个转义字符,所以这可能是导致问题的原因。
最佳答案
我在使用 g++ 的 path
字符串上遇到编译器错误,因为它包含无效的转义码。显然,MSVC 会产生警告但不会产生错误(请参阅 Michael Burr 的回答)。因此,如果您确实在使用您发布的 path
,请将反斜杠更改为双反斜杠。
更正这一点,我发现您的代码仅替换了第一个反斜杠并保留了其他反斜杠。也许你想使用 std::replace()
,像这样:
std::replace(path.begin(), path.end(), '\\', '/');
关于c++ - 在 C++ 中用正斜杠或双反斜杠替换反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4444486/