Stringvergleich
-
Weiss jemand warum folgender Code eine Warning erzeugt:
if (string[j] == "A")
(warning: comparison between pointer and integer
warning: comparison with string literal results in unspecified behavior)und folgender Code nicht?
if (string[j] == 'A')
Besten Dank
-
'A' ist ein char, "A" eine Zeichenkette und dementsprechend ein Zeiger.
-
Warnung? Das müsste eigentlich ein Error sein und dürfte nicht kompilieren. "A" ist ein const char* 'A' ist ein char und somit ausschließlich für den char==char-Vergleich geeignet.
-
Vicious Falcon schrieb:
Warnung? Das müsste eigentlich ein Error sein
Logisch: ja
Syntaktisch: neinein Zeiger kann ja als integer angesehen werden und ein char auch.
-
Michael E. schrieb:
'A' ist ein char, "A" eine Zeichenkette und dementsprechend ein Zeiger.
Ist das C Standard? Ich habe das (sagen wir bewusst) in noch keinem C Lehrbuch gesehen... Aber das muss nichts heissen
Besten Dank für die Antworten.
-
Ja, ist es.
-
comp_lit schrieb:
Ist das C Standard?
Das sind allerwichtigste C Grundlagen. Wenn du das nicht verstanden hast brauchst/kannst du kein C Programmieren.
Ist aber auch der Stolperstein für Anfänger.
-
Shade Of Mine schrieb:
Vicious Falcon schrieb:
Warnung? Das müsste eigentlich ein Error sein
Logisch: ja
Syntaktisch: neinStimmt:
C : Compilerwarnung
C++: Compilerfehler