首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将字符串c++中的单反斜杠替换为双反斜杠

将字符串c++中的单反斜杠替换为双反斜杠
EN

Stack Overflow用户
提问于 2019-10-21 00:16:36
回答 2查看 1K关注 0票数 0

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

代码语言:javascript
复制
str = "d:\test\text.txt"
str.replace("\\","\\\\");

代码不起作用。整个想法是将str传递给deletefile函数,这需要两个黑斜杠。

EN

回答 2

Stack Overflow用户

发布于 2019-10-21 01:02:09

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

代码语言:javascript
复制
#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;
}

有点夸张,但诀窍是你想要一个“快速”的解决方案

票数 1
EN

Stack Overflow用户

发布于 2019-10-21 00:53:40

您的代码中有两个错误。

第一行:您忘记在文字字符串中使用双倍\。碰巧\t是一个表示制表符的有效转义,所以您没有得到编译器错误,但是您的字符串不包含您所期望的内容。

第二行:根据string::replace的引用,可以根据子串的位置,将一个子串替换为另一个子串。然而,没有一个版本可以进行替换,即用一个给定子字符串替换所有出现的子字符串。

这在标准库中并不存在。例如,它存在于boost库中,请参阅boost string algorithms。您要查找的算法名为replace_all。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58474888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档