Ich versuche, ein Programm dazu zu bringen, dass ein Benutzer ein Wort oder Zeichen eingibt, es speichert und dann druckt, bis der Benutzer es erneut eingibt und das Programm beendet. Mein Code sieht folgendermaßen aus:
#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;
}
Das Problem ist, dass ich immer wieder den Druck der Eingabezeichenfolge erhalte, auch wenn die Eingabe des Benutzers (Prüfung) mit dem Original (Eingabe) übereinstimmt. Vergleiche ich die beiden falsch?
strcmp()
Null zurück, wenn seine Eingaben gleich sind, erklärt, wie Zeichenfolgen auf Gleichheit, Ungleichheit, kleiner als, größer als, kleiner als oder gleich und größer als oder gleich verglichen werden. Nicht alle Zeichenfolgenvergleiche dienen der Gleichheit. Vergleiche zwischen Groß- und Kleinschreibung unterscheiden sich wieder. Andere spezielle Vergleiche (z. B. Wörterbuchreihenfolge) erfordern spezialisiertere Komparatoren, und es gibt reguläre Ausdrücke für noch komplexere Vergleiche.
gets()
ist ein No-Go. Es wurde auch seit C11 aus dem Standard entfernt -> Bitte lesen Sie Warum ist die Funktion gets so gefährlich, dass sie nicht verwendet werden sollte?
gets( )
wurde aus dem Standard entfernt. Verwenden Siefgets( )
stattdessen.