首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在字符串中插入\字符

在字符串中插入\字符
EN

Stack Overflow用户
提问于 2016-05-17 03:17:23
回答 4查看 113关注 0票数 1

我尝试在字符串中插入一个\字符,这样我就可以得到

用C:\Users\dave\Desktop\XY.txt代替C:\Users\georg\Desktop\XY.txt

以下是代码,但由于某些原因,它不能工作

代码语言:javascript
运行
复制
string q="C:\Users\georg\Desktop\XY.txt";
char x='\\';


for (int i = 0; i < q.length(); ++i) {
if (q[i] == '\\')
 q.insert(i,4,x);
 }
EN

回答 4

Stack Overflow用户

发布于 2016-05-17 03:20:08

只需写

代码语言:javascript
运行
复制
string q="C:\\Users\\georg\\Desktop\\XY.txt";

或使用原始字符串文字

代码语言:javascript
运行
复制
string q=R"(C:\Users\georg\Desktop\XY.txt)";
票数 5
EN

Stack Overflow用户

发布于 2016-05-17 03:20:25

您应该在引号中使用\来添加单个。所以你的第一行就是问题所在。它应该是

代码语言:javascript
运行
复制
string q="C:\\Users\\georg\\Desktop\\XY.txt";

然后剩下的就可以用了。

编辑

经过额外的解释,我发现了后续代码的问题。应将其固定为以下值:

代码语言:javascript
运行
复制
for (int i = 0; i < q.length(); ++i) {
    if (q[i] == '\\') {
        q.insert(i,1,x);
        i++;
    }
}

我来解释一下,首先,你只需要1个额外的\所以insert的第二个参数应该是1。在插入之后,你需要跳过inserted \,因此i++;

票数 2
EN

Stack Overflow用户

发布于 2016-05-17 03:36:23

目标

在字符串中找到的每个字符串中添加一个额外的反斜杠(用于另一个程序)

当前问题

  1. 示例字符串没有正确转义(最简单的是使用原始字符串)
  2. for循环一次插入4个反斜杠,因此永远不会到达末尾。

使用C++11的解决方案

这将为每个已经存在的值添加一个反斜杠:

代码语言:javascript
运行
复制
#include <iostream>
#include <string>

int main()
{
    std::string q = R"(C:\Users\georg\Desktop\XY.txt)";

    char x='\\';


    for (int i = 0; i < q.length(); ++i) {
        if (q[i] == '\\') {
            q.insert(++i,1,x);
        }

    }
    return 0;
}

不带原始字符串的解决方案

代码语言:javascript
运行
复制
#include <iostream>
#include <string>

int main()
{
    //std::string q = R"(C:\Users\georg\Desktop\XY.txt)";
    std::string q = "C:\\Users\\georg\\Desktop\\XY.txt";

    char x='\\';


    for (unsigned i = 0; i < q.length(); ++i) {
        if (q[i] == '\\') {
            q.insert(++i,1,x);
        }
    }

    std::cout << q;

    return 0;
}

Result

代码语言:javascript
运行
复制
C:\\Users\\georg\\Desktop\\XY.txt
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37261569

复制
相关文章

相似问题

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