String in C überprüfen?
Hallo!
Ich habe ein Problem in C. Ich Frage per scanf( ) einen String ab, den ich mit char eingabe[ ] = " "; deklariert habe. Den String zu printen funktioniert nach der Eingabe ganz normal. Nur habe ich Probleme mit dem Abfragen / Überprüfen eines Strings!
Beispiel:
if(eingabe == "hello") {
printf("Hello World");
}
Dies funktioniert leider nicht. Bitte um Hilfe!
4 Antworten
Zum Vergleichen von Strings musst du die Funktion strcmp() benutzen.
Der "=="-Operator vergleicht die Speicheradressen der Strings, und die werden in deinem Fall immer unterschiedlich sein.
eingabe ist nicht ein string sondern nur eine zahl die eine speicheradresse bezeichnet ab der das erste zeichen des strings steht, also z.B.
eingabe = 7512895
klar dass eingabe == "hello" dann nicht geht (allein schon vom Typ her). In Basic ist das anders. Da könnte man eingabe$ = "hello" vergleichen oder sogar setzen.
Du brauchst also eine Funktion, die mit der speicheradresse (hier 7512895) dir den String zusammenbastelt und das ist dann z.B. das strcmp.
Probier es mal mit eingabe.equals("hello")
Wenn das nicht geht, musst du jedes Zeichen einzeln in einer Schleife überprüfen. Dazu würde ich mir dann eine Funktion bauen.
Morgen! Trifft auf die genannte Sprache C nicht zu, trotzdem danke für Ihre Bemühungen! (C# ist mir dann doch zu viel) 😂
Ich habe es bei C# gefunden. Kommt jetzt darauf an, wie genau der Fragesteller getaggt hat.
https://docs.microsoft.com/de-de/dotnet/api/system.string.equals?view=netframework-4.8
Versuch es mal mit if(strcmp(eingabe, "hello") == 0)
Ich befürchte, das wird in der Sprache C nicht klappen.