Ich weiß nicht mehr weiter ..
-
Was vergleichst du hier? (das ist dein Problem, also erst denken, dann antworten)
if (Token == "nop")
-
manni66 schrieb:
Was vergleichst du hier? (das ist dein Problem, also erst denken, dann antworten)
if (Token == "nop")ob das was ich eingegeben hab == nop ist
-
Und warum gibt es dann eine Funktion strcmp, die - nach deiner Ansicht - dann genau dasselbe macht?
-
Nathan schrieb:
Und warum gibt es dann eine Funktion strcmp, die - nach deiner Ansicht - dann genau dasselbe macht?
weil ich diese funktion grad zum ersten mal hör ? aber danke .
-
i516alu schrieb:
weil ich diese funktion grad zum ersten mal hör ? aber danke .
Du vergleichst hier die Adresse des ersten Zeichens in deinem Code-Array mit der des ersten Zeichens in "nop". Die können niemals gleich sein.
In C++ gibt es dafür std::string, in C strcmp.
-
Nathan schrieb:
Und warum gibt es dann eine Funktion strcmp, die - nach deiner Ansicht - dann genau dasselbe macht?
Ja, und warum gibt es string::append(..., wenn doch Operator + für string überladen ist?
Und warum gibt es string::length(), wenn doch string::size() - nach deiner Ansicht - dann genau dasselbe macht?
-
Diese Dinge machen das gleiche, aber der Operator == und strcmp unterschiedliche Dinge!
Mit append kann man außerdem genauer spezifizieren, was hinzu gefügt werden soll.
Mein Post war eher dazu gedacht, den TE darauf aufmerksam zu machen, dass er einen Fehler gemacht hat und ihn evtl. daran zu erinnern, dass man C-Strings nicht mit == vergleichen kann.
-
Deine Argumentation " ... warum gibt es das wohl, wenn es doch schon jenes gibt ..." war einfach nicht zielführend.
-
Belli schrieb:
Nathan schrieb:
Und warum gibt es dann eine Funktion strcmp, die - nach deiner Ansicht - dann genau dasselbe macht?
Ja, und warum gibt es string::append(..., wenn doch Operator + für string überladen ist?
Weil a+b nicht das selbe wie a.append(b) ist.
und wgeen size vs length: weil da unterschiedliche Konventionen abgedeckt werden sollten. Würde ich aber auch als defekt deklarieren.
-
otze schrieb:
Weil a+b nicht das selbe wie a.append(b) ist.
Er meinte
+=. Undpush_back()gibts ja auch noch. Die sind zwar alle ein bisschen anders überladen, aber dennoch gehts bei allen drei ums Anhängen.Allerdings sind Methoden wie
find_last_not_of()um einiges fragwürdiger