Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
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
zail nail 12
为什么会这样?我不明白什么strcmp?为什么是 12 而不是其他数字?
strcmp
要回答你的问题,
strcmp("zail", "nail")
正在评估为 12,因为它从“zail”中的“z”中减去“钉子”中的“n”,并且“z”-“n”= 12。
你得到随机垃圾是因为你没有正确初始化你的数组。
代替
map[0][4]='\0'; city1[0][4]='\0';
尝试
memset(map[0], '\0', sizeof(map[0])); memset(city1[0], '\0', sizeof(city1[0]));