我的 char 数据类型包含一个带双斜杠的目录。我想将双斜杠替换为四个斜杠,以便我的输出将是双斜杠。我尝试了很多解决方案,但没有任何效果。
char *str = "C:\\Users\\user\\desktop";
for(int i = 0;i < strlen(str) ; i++)
if(str[i] == '\\')
str[i] =='\\\\';
此代码的输出显示“C:\Users\user\desktop”。
最佳答案
首先,由于您使用的是 C++,请考虑使用 std::string
。修改字符串文字是未定义的行为(要么将字符串文字复制到缓冲区中,要么首先使用 char []
或 std::string
。)
其次,字符串文字必须用双引号括起来。
第三,您需要为每个转义的反斜杠设置两组反斜杠。 \\\\
变成 \\
。
这应该可以解决问题:
std::string s("C:\\Users\\user\\desktop");
auto it = std::find(s.begin(), s.end(), '\\');
while (it != s.end()) {
auto it2 = s.insert(it, '\\');
// skip over the slashes we just inserted
it = std::find(it2+2, s.end(), '\\');
}
std::cout << s; // C:\\Users\\user\\desktop
关于c++ - 将双斜杠替换为四斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20810784/