-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")

"zail" の "z" から "nail" の "n" を引いており、"z" - "n" = 12 であるため、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 に答える