Strings vergleichen...
-
Simple Frage?
Wie vergleiche ich zwei char-Arrays in C++?
Danke für die Antworten!
-
Hallo
In c++ verwendet man std::string und den Vergelcihsoperator==.
chrische
-
Genauso wie in C: strcmp()
(alternativ schmeißt du die char-Arrays weg und verwendest stattdessen std::string)
-
Bin aber leider auf die char-Arrays angewiesen...
strcmp ist doch C, oder?
-
dasbinich schrieb:
strcmp ist doch C, oder?
Ja, aber die C-Standardbibliothek wurde aus Kompatiblitätsgründen in den C++ Standard mit aufgenommen (nur der Header wurde umgetauft von <string.h> nach <cstring> und alle Funktionen in den Namensraum std:: verlagert).
PS: Auch wenn du mit Funktionen zu tun hast, die noch mit char* hantieren, solltest du trotzdem intern std::string's verwenden und diese erst bei Bedarf auf ein char-Array reduzieren (Lesezugriff bekommst du mit c_str(), Schreibzugriff aus Sicherheitsgründen nur indirekt über ****).
-
Heißt das, dass ich mit
#include <iostream> #include <cstring> ... if (std::strcmp(c_xy,"test")==0) { std::cout << "c_xy=\"test\"\n"; }nach Standard-C++ arbeite?
-
Es ist zwar in C++ kein guter Stil, mit nackten char-Zeigern zu arbeiten, aber: Ja.
-
Ok, danke!
-
Du könntest die Zeichen auch einzelnd vergleichen, also ganz auf strcmp verzichten.
Denke mal, strcmp wird das intern nicht anders machen, wie denn auch.
Und sicherlich benötigt das die eine oder andere Zeile mehr an Quelltext.
-
Wenn schon brutal, dann richtig

Also Längenvergleich und std::char_traits< char >::compare ...
-
na wenn man schon zeichen einzeln anfasst, dann ist man eh schon so tief runter gegangen, dass man die ganzen standardmethoden aussen vor lassen kann
