我正在将一个适用于 Ubuntu 8.04(gcc 版本 4.2.4)的程序移植到 10.04(gcc 版本 4.4.3)。我有以下代码:
#include <stdio.h>
#include <string.h>
int main(void) {
char p[100] = "////abcd";
char *t;
/* Remove duplicate slashes, saving only one of them */
while (t = strstr(p, "//"))
strcpy(t, t + 1);
printf("%s\n", p);
return 0;
}
结果应该是/abcd
,它与 gcc 4.2.4 相同。对于 4.4.3,输出为/accd
.
您能否建议我更改代码,以使用两个版本的 gcc 提供正确的输出,并最好解释这里发生了什么。
提前致谢!