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而不是任何其他数字?
答案 0 :(得分:5)
要回答你的问题,
strcmp("zail", "nail")
评估为12,因为它从“zail”中的'z'减去“nail”中的'n','z' - 'n'= 12。
答案 1 :(得分:1)
你得到的是随机垃圾,因为你没有正确初始化数组。
而不是
map[0][4]='\0';
city1[0][4]='\0';
尝试
memset(map[0], '\0', sizeof(map[0]));
memset(city1[0], '\0', sizeof(city1[0]));