ユーザーが単語や文字を入力して保存し、ユーザーがもう一度入力してプログラムを終了するまで印刷できるプログラムを取得しようとしています。私のコードは次のようになります:
#include <stdio.h>
int main()
{
char input[40];
char check[40];
int i=0;
printf("Hello!\nPlease enter a word or character:\n");
gets(input);
printf("I will now repeat this until you type it back to me.\n");
while (check != input)
{
printf("%s\n", input);
gets(check);
}
printf("Good bye!");
return 0;
}
問題は、ユーザーによる入力(チェック)が元の(入力)と一致する場合でも、入力文字列の印刷を取得し続けることです。2つを誤って比較していますか?
strcmp()
その入力が等しいリターンゼロは平等のための文字列を比較する方法について説明し、不平等、より小さい、より大きい、より小さいか等しい、より大きいか等しいです。すべての文字列比較が同等であるとは限りません。大文字と小文字を区別する比較は再び異なります。その他の特別な比較(辞書順など)には、より専門的なコンパレータが必要であり、さらに複雑な比較には正規表現があります。
gets()
ノーゴーです。また、C11以降、標準から削除されました->を参照してくださいなぜ機能が危険なので、使用しないでください。
gets( )
標準から削除されました。fgets( )
代わりに使用してください。