我不知道标题是否正确解决了我的问题。所以,我会随之而去。 这里是问题所在,我必须输入文件路径的字符数组(在Windows中),其中包含大量反斜杠,例如。 “C:\ myfile.txt”并返回一个C型文件路径的无符号字符数组,例如。 “C:\ myfile.txt的”。如何让反斜杠字符不能转义
我试着写一个函数。
unsigned char* parse_file_path(char *path);
{
unsigned char p[60];
int i,j;
int len = strlen(path);
for(i=0,j=0; i<len; i++, j++)
{
char ch = path[i];
if(ch==27)
{
p[j++]='\\';
p[j]='\\';
}
else
p[j] = path[i];
}
p[j]='\0';
return p;
}
我遇到的奇怪的事情(对我来说)是,这里的路径只包含一个反斜杠'\'。为了得到一个反斜杠,我必须把'\'放在路径中。这是不可能的,导致路径不能包含'\'。当我将它称为parse_file_path("t\es\t \it)
时,它将返回 t←s it
。但parse_file_path("t\\es\\t \\it")
返回t\es\t \it
。
我怎样才能完成我的任务?提前致谢。
C语言规范规定在一个字符串获得一个反斜杠,你逃避它。 –
您似乎预计输入中的反斜杠会被实际转义(ASCII 27)转义,这可能不正确。 – unwind
@JoachimPileborg字符串以某种方式已经包含一些单一的转义反斜杠。我怎样才能让每个单一的反斜杠加倍? – muntasir2000