...togli il newline dalla stringa "code[]" prima di fare il confronto:
codice:
char code[50];
char i = 0;
printf("Indovina la password: ");
while (1)
{
fgets(code, 50, stdin);
while( 1 ) // itero per l'intera stringa
{
if( code[i] == '\n' ) // se trovo il newline
{
code[i] = '\0'; // lo sostituisco con un terminatore di stringa "NULL"
i = 0; // (...)
break; // ...e esco
}
i++; // altrimenti continuo ad iterare (passando al carattere successivo)
}
if (! strcmp(code, "ciao ciao")) // ora non servono più i newline!
{
printf("ok\n");
break;
}
else if (! strcmp(code, "uno"))
printf("uno\n");
else if (! strcmp(code, "due"))
printf("due\n");
else
printf("Errata: riprova\n");
}
p.s. se inserisci: "ciao ciao" utilizzando la fgets()
viene aggiunto un carattere di newline in coda alla stringa
quindi vai a confrontare "ciao ciao\n\0" con "ciao ciao\0"
e le due stringhe sono diverse.