ユーザーの入力が既に指定された文字列と等しいかどうかを確認するコードを記述しています。プログラムは、strcmp関数を使用して入力が文字列と同じになるまでループしますが、何らかの理由でプログラムが文字列を比較しないため、ループが誤動作します。コードは以下である:ループ内のCで2つの文字列を比較する
int main()
{
char passcode[3]="ZZZ";
char input[3];
int check;
while(check!=0)
{
printf("What is the password?\n");
gets(input);
check=strcmp(passcode, input);
}
printf("You crack the pass code!");
return 0;
}
ゼロ以外の値で 'check'を初期化する必要があります。 – abdullah
'strcmp(パスコード、入力)'は2つの文字列を必要とします。 'passcode []'はヌル文字がないので文字列ではありません。 – chux
['gets()'は使用するにはあまりにも危険です! 2文字は安全に入力することができます。これは遠く離れていても遠すぎず、リモートから安全ではありません。 3を4096に変更してください。 –