romperstomper Geschrieben 25. November 2002 Geschrieben 25. November 2002 Hey Leute! Habe da ein Problem und zwar möchte ich gerne eine char variable abfragen! Hier ein kleines test programm: #include <iostream.h> int main () { char a[2]; cout<<"Einen Buchstaben eingeben: "; cin>>a; cout<<"eingabe: "<<a<<endl; if (a == "j") { cout<<"test"; } else { cout<<"test3"; } } Jetzt sollte er meiner Meinung hin gehen und wenn man ein kleines j eingibt, das er dann Test ausgibt! Doch er gibt immer test3 aus! Jetzt meine Frage: Warum? Und wie kann man sie richtig abfragen? Danke schonmal! Zitieren
HELLmut Geschrieben 25. November 2002 Geschrieben 25. November 2002 Morgen! Probiers mal mit if (a[0] == 'j') Aber warum macht du ein char-Array, wenn du einen Buchstaben einlesen und abfragen willst? mach doch einfach: char a; und a=='j' Zitieren
Klotzkopp Geschrieben 25. November 2002 Geschrieben 25. November 2002 Originally posted by dgorski if (a == "j") Was Du hier machst, ist ein Adressvergleich. Die Adresse des Stringliterals "j" vergleichst Du mit der Adresse des ersten Elements von a. <Gebetsmühle> char-Strings vergleicht man mit strcmp. Achtung, strcmp gibt bei Übereinstimmung Null zurück. </Gebetsmühle> Falls Du wirklich nur ein einziges Zeichen vergleichen willst, solltest Du HELLmuts Vorschlag verwenden. Zitieren
romperstomper Geschrieben 25. November 2002 Autor Geschrieben 25. November 2002 Hey das klappt sogar mit dem if (a[0] == 'j') Aber was ist wenn ich dann noch einen anderen Buchstaben abfragen will? if (a[0] == 'j' || 'M') das klappt dann wieder nicht! Irgendwie ein Rätsel! Zitieren
romperstomper Geschrieben 25. November 2002 Autor Geschrieben 25. November 2002 Ist schon Ok! Sorry,habe es hin bekommen! Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.