gpt4 book ai didi

c - 替换反斜杠 C

转载 作者:行者123 更新时间:2023-12-02 08:47:41 24 4
gpt4 key购买 nike

希望这很容易做到。我正在用 C 编写一个需要在 Windows 和 Linux 上运行的程序。在 Linux 上它运行良好,但在 Windows 上(通过 Cygwin)它搞砸了,因为环境变量在路径中有反斜杠而不是斜杠。有没有办法替换这些?我尝试了以下但它没有改变任何东西,可能是因为它认为反斜杠正在转义下一个字符,但显然不是这种情况。这是我尝试过的:

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);
...
}

正确的做法是什么?

最佳答案

主要问题:

(1)

char *val[100];

应该是:

char val[100];

(2)

您不能将局部变量 (val) 作为函数结果返回,因为它将超出范围。

小问题:

这里的逻辑是错误的:

while(val[index])
{
if(val[index] == '\\')
val[index] = '/';
else
index++;
}

应该是:

while(val[index])
{
if(val[index] == '\\')
val[index] = '/';
index++;
}

虽然这不是致命的。

关于c - 替换反斜杠 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11194976/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com