我有一段程序是在linux下跑的,想弄到windows下。
可以弄过来之后,输入文件的路径却出了些问题。
使用C:\1.dat就不行, 使用C:/1.dat就可以。
因此我尝试用替换字符的程序去把 \ 替换成 / 。
char *replacestr(char *strbuf, char *sstr, char *dstr)
{
char *p,*p1;
int len;
if ((strbuf == NULL)||(sstr == NULL)||(dstr == NULL))
return NULL;
p = strstr(strbuf, sstr); //返回字符串第一次出现的地址,否则返回NULL
if (p == NULL) /*not found*/
return NULL;
len = strlen(strbuf) + strlen(dstr) - strlen(sstr);
p1 = malloc(len);
memset(p1, 0, len);
strncpy(p1, strbuf, p-strbuf);
strcat(p1, dstr);
p += strlen(sstr);
strcat(p1, p);
return p1;
}
然后这样调用 filename = replacestr(filename, "\\", "/");
但是返回的是空指针,我也尝试了类似的程序,都无法替换,不知道问题出在什么地方