希望这很容易做到。我正在编写一个需要在Windows和Linux上运行的程序。在Linux上它工作的很好,但在Windows上(通过Cygwin),它因为环境变量在路径中具有反斜杠而不是斜线而被拧紧。有没有办法来取代这些?我尝试了以下内容,但它没有改变任何东西,可能是因为它认为反斜杠正在逃避下一个字符,显然不是这种情况。以下是我的尝试:替换反斜杠C
char* fixPath(char *env)
{
char *val[100];
strcpy(val, getenv(env));
int index = 0;
while(val[index])
{
if(val[index] == '\\')
val[index] = '/';
else
index++;
}
printf("\n***%s",val);
return val;
};
int main(int argc, char *argv[])
{
char *test1;
test1 = fixPath("SERVER1");
printf("\n*****%s",test1);
...
}
什么是正确的方法来做到这一点?
为什么不按原样使用路径? – dirkgently
反斜杠是转义字符,当它们出现在源代码中的字符串文字中时。内存中的字符串中的反斜杠不能用作转义字符,而用另一个字符替换它们可能无法解决您的问题。 –
也许试试Perl正则表达式? perl -pi -e's/\ // \\/g' 这将直接编辑该文件,因此您可能需要首先对其进行测试。 – squiguy