首页 > 解决方案 > 用字符串c ++中的双反斜杠替换单个反斜杠

问题描述

我正在尝试用两个反斜杠替换一个反斜杠。为此,我尝试使用以下代码

str = "d:\test\text.txt"
str.replace("\\","\\\\");

代码不起作用。整个想法是传递strdeletefile函数,这需要双黑斜线。

标签: c++

解决方案


从 c++11 开始,您可以尝试使用正则表达式

#include <regex>
#include <iostream>

int main() {
    auto s = std::string(R"(\tmp\)");
    s = std::regex_replace(s, std::regex(R"(\\)"), R"(\\)");

    std::cout << s << std::endl;
}

有点矫枉过正,但诀窍是你想要一个“快速”的解决方案


推荐阅读