-6
map[0][4]='\0';
city1[0][4]='\0';
strcpy(map[0],city1[0]);
map[0][0]='z';
printf("%s",map[0]);
printf("%s",city1[0]);
printf("%d \n",strcmp(map[0],city1[0]));

这个函数的输出是zail nail 12

为什么会这样?我不明白什么strcmp?为什么是 12 而不是其他数字?

4

2 回答 2

5

要回答你的问题,

strcmp("zail", "nail")

正在评估为 12,因为它从“zail”中的“z”中减去“钉子”中的“n”,并且“z”-“n”= 12。

于 2012-06-07T21:18:18.223 回答
1

你得到随机垃圾是因为你没有正确初始化你的数组。

代替

map[0][4]='\0';
city1[0][4]='\0';

尝试

memset(map[0], '\0', sizeof(map[0]));
memset(city1[0], '\0', sizeof(city1[0]));
于 2012-06-07T21:11:48.677 回答