c++ - 在 C++ 中用正斜杠或双反斜杠替换反斜杠

标签 c++ visual-c++

所以我有一个字符串:

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/

相关文章:

c - 为什么 Windows Driver Kit 中没有 WDM 内核模式驱动程序模板?

visual-c++ - 用于 outlook 插件的 VSTO 中的功能区回调方法实现

c++ - 具有复制构造函数、平凡赋值运算符和平凡析构函数的动态大小的文本对象

c++引用作为私有(private)变量的简写

c++ - 在 Visual Studio 调试器中查看数组?

javascript - CEF 中从客户端到浏览器的消息传递序列化

c++ - 默认预处理器定义和跨平台编译

unit-testing - 在 Visual Studio 中使用 Catch2 进行单元测试的最佳实践

c++ - 为什么我的 visual studio 构建不正确?

c++ - 为什么我会收到 CL_MEM_OBJECT_ALLOCATION_FAILURE?