Problem mit strncmp(char* str, "Text", int n)
-
Nach etwas längerer versuchter Problemlösung komm ich nicht weiter. Ich mach wohl irgendwo einen Fehler, den ich nicht als solchen erkenne.
Folgendes Problem:
Ich habe eine char-Variable deklariert.char fieldname[26];Anschließend benutze ich eine Funktion,
bekommeText(fieldname)die ich selber aber nicht einsehen kann,
der ich den Zeiger auf meine char-Variable übergeben muss,
und bekomme dafür einen bestimmten Text zurück.
Hier als Beispiel "Velocity".cout << fieldname << endl;liefert mir also "Velocity".
Anschließend soll der in fieldname abgelegte Text verglichen werden und zwar in der Form:
if(strncmp(fieldname, "Velocity", strlen("Velocity")) == 0) { //tue irgendwas } if(strncmp(fieldname, "Length", strlen("Length")) == 0) { //... } else { cout << "Fehler!" << endl; }Soweit hab ich trotz mehrmaligen Lesen keinen Fehler gefunden.
Ich bekomme aber ausnahmlos als Ausgabe: "Fehler!"
Wo mache ich da etwas falsch?
-
Wird denn // tue was auch ausgeführt?
Tipp: else if statt if (ab der zweiten Bedingung).
-
Das else bezieht sich immer nur auf das letzte if.
Wenn es sich auf alle ifs beziehen soll, bau eine if/else if-Kaskade auf.
-
also das "//tue irgendwas" wird nicht ausgeführt.
es wird sozusagen übersprungen.
-
also ich hab die if/else-Kaskade aufgebaut.
Die Fehlermeldung tritt jetzt auch nicht mehr auf.
Somit wäre das strncmp-Problem gelöst.
Danke!
Aber die if/else-Verschachtelungen hab ich immer total vernachlässigt.