【課題2− 18】 提出課題(5) 次のプログラムは,文字列を二つ入力し,等しいか否か判定する処理を,使用者が要求する限り続けるものである.下の空欄A〜Eを埋めよ. #include int main(void) { char str1[256], str2[256]; int i, yn; 「 A 」{ i = 0; printf("Input str1: "); scanf("%s", str1); printf("Input str2: "); scanf("%s", str2); while (str1[i] != 「 B 」) { // 文字列の最後までループ if (str1[i] != str2[i]) 「 C 」; // 異なる文字があったら脱出 i++; } if (「  D  」) //両文字列とも'¥0'で等しければ等しい文字列 printf("These strings are same.¥n"); else printf("These strings are different.¥n"); printf("Try again?¥n1:yes 2:no "); scanf("%d", &yn); } 「 E 」(yn == 1); // yesなら再度実行 return 0; } 【実行結果】 Input str1: abcd Input str2: abcd These strings are same. Try again? 1:yes 2:no 1 Input str1: abcde Input str2: abcdf These strings are different. Try again? 1:yes 2:no 2 【解説とヒント】 文字を1つずつ比較し,異なる文字列の出現で内側のループを脱出.その直後に再度両者の文字列を比較.もし等しければ,ともに'¥0'まで比較を実施したことになり,異なれば,途中でループを脱出したことになる.