char Leerzeichen
-
hi all,
Ich will in meinem Programm überprüfen, ob ein Array vom Typ char ein Leerzeichen enthält. Dies hab ich nach dem folgenden Muster versucht:if( zeichen[i]==" "){...}
Jedoch hat es nicht funktioniert.
Warum das? Und wie mach ich es richtig?
-
statt " " nimm ' '
mit "" vergleichst du mit der adresse eines char[], bzw. char*, nicht das zeichen selber. das sollte bei deinem code der compiler schon anmeckern.
-
" " bezeichnen ein null-terminiertes character-<name-vergessen>, was du suchst ist ' ', was ein einzelnes Zeichen darstellt.
Oder du nutzt gleich str::find(), falls zeichen vom Typ std::string ist.
-
hey danke für eure schnellen Antworten.
Aber wenn ich es mit ' ' versuche erhalte ich eine Fehlermeldung:
ANSI C++ forbids comparison between pointer and integerDas verstehe ich gar nicht:P. Weil ich weder einen pointer noch einen int benutze. Bitte um Aufklärung
-
Wie ist denn "zeichen" deklariert?
-
char zeichen[77][3]={"2"," ","3","4"," ","5","6"," "}
-
Da haben wir doch schon den Übeltäter
Öhm, wie erklär ich das jetzt?
Aaaaaalso, alles was in '' ist, muss ein einzelnes Zeichen sein, ein char. Alles was in "" ist, ist ein char[]. Deine Variable "zeichen" hat also 77 mal jeweils 3 chars als Typ, was du ja eigentlich gar nicht wolltest (so wie ich das verstanden hab).
mit "2" machst du eigentlich das:char blubb[] = { '2', '\0' };
, halt ohne Variablendeklaration, aber damit du erkennst, was das für ein Typ ist
Wenn "zeichen" wirklich nur einzelne Zeichen beinhalten soll, dann machs so:
char zeichen[] = { '2', ' ', '.', ... };
-
vielen Dank für deine Antwort. Jetzt hab ich alles verstanden... Du bist ein Schatz