C++ hard coded string vergleichen

T_55

Lieutenant
Registriert
Feb. 2013
Beiträge
643
Hallo,

kurze Frage, welche Variante ist denn die sicherste um ein std::string mit einem hardcoded string (zb "test") zu vergleichen?
Ein hardcoded string definiert der Compiler beim mouse over als ein const char * daher frage ich mich gibt es unter bestimmten Umständen beim normalen == irgendwelche Stolperfallen und man sollte grundsätzlich eher über .compare oder etwas anderes gehen?

std::string str = "test";

if(str == "test") { }
oder
if(str.compare("test") == 0) { }

Was wäre die sicherste Variante?

Grüße
 
Ich benutze immer if (str == "test"), das sollte kein Problem sein. Kurz googeln bestaetigt, dass es passende Operatoren gibt:
http://www.cplusplus.com/reference/string/string/operators/

Ist also safe und liest sich meiner Meinung nach deutlich besser und natuerlicher als if (str1.compare(str2) == 0)), also einen numerischen Wert als Rueckgabetyp des Vergleichs zu bekommen.
 
  • Gefällt mir
Reaktionen: T_55
Alles klar danke, dann hatte ich das == zu unrecht im Visier was ja der Link auch eindeutig bestätigt, umso besser, es ist definitiv natürlicher es so zu schreiben :)
 
Zurück
Oben