我尝试在字符串中插入一个\字符,这样我就可以得到
用C:\Users\dave\Desktop\XY.txt代替C:\Users\georg\Desktop\XY.txt
以下是代码,但由于某些原因,它不能工作
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);
}发布于 2016-05-17 03:36:23
目标
在字符串中找到的每个字符串中添加一个额外的反斜杠(用于另一个程序)
当前问题
for循环一次插入4个反斜杠,因此永远不会到达末尾。使用C++11的解决方案
这将为每个已经存在的值添加一个反斜杠:
#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;
}不带原始字符串的解决方案
#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
C:\\Users\\georg\\Desktop\\XY.txthttps://stackoverflow.com/questions/37261569
复制相似问题