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 なのですか?
あなたの質問に答えるために、
strcmp("zail", "nail")
"zail" の "z" から "nail" の "n" を引いており、"z" - "n" = 12 であるため、12 と評価されます。
アレイを適切に初期化していないため、ランダムなジャンクが発生しています。
それ以外の
map[0][4]='\0';
city1[0][4]='\0';
試す
memset(map[0], '\0', sizeof(map[0]));
memset(city1[0], '\0', sizeof(city1[0]));