Veröffentlicht 25. November 200222 j 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!
25. November 200222 j 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'
25. November 200222 j 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.
25. November 200222 j Autor 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!
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.