char array
-
Hallo wer kann mir sagen in was das a hier konvertiert wird.
char zeichen[256]; cout<<"Zeichen: "; cin>>zeichen; if (zeichen[0] == 'a') { cout<<"test"; }Wenn ich das ganze so versuche: ( also mit " " in der if abfrage )
Dann kommt die Fehlermeldung das die Konvertierung von char nach char nicht möglich ist. Oben hab ich das ja mit ' ' gemacht. Aber nun meine Frage in was wird das a oben konvertiert?char zeichen[256]; cout<<"Zeichen: "; cin>>zeichen; if (zeichen[0] == "a") { cout<<"test"; }
-
Der obere Code ist korrekt.
'a' ist ein char mit dem Inhalt a
"a" ist ein const char* mit dem Inhalt a.
-
Braunstein schrieb:
"a" ist ein const char* mit dem Inhalt a.
Nicht nur. Da bekommt man sogar eine Nullterminierung noch gratis dazu.
-
Das ist klar. Da es gratis mit kommt habe ich es einfach nicht erwähnt.

Auch um den OP nicht zu verwirren.
-
Braunstein schrieb:
Das ist klar. Da es gratis mit kommt habe ich es einfach nicht erwähnt.

Auch um den OP nicht zu verwirren.Imo ist das aber ein kleines, feines, aber wichtiges Detail, dass man schon wissen sollte. Vor allem, wenn man sonst mit Arrays rumspielt und plötzlich eines hat, dass irgendwie immer 1 grösser ist, als man erwartet.

( Ich spiele auf das ungewöhnliche Verhalten des Arrays in Abhängigkeit des Datentypen an. Es ist nämlich überhaupt nicht logisch, dass das passiert, wenn man den Hintergrund (C-Strins) usw. nicht kennt.)