Ich möchte zwei Strings vergleichen. Ist das mit strcmp
möglich? (Ich habe es versucht und es scheint nicht zu funktionieren). Ist string::compare
eine Lösung?
Gibt es eine Möglichkeit, ein string
mit einem char
?
Danke für die frühen Kommentare. Ich habe in C ++ programmiert und ja es war std::string
wie einige von euch erwähnt haben.
Ich habe den Code nicht gepostet, weil ich das allgemeine Wissen lernen wollte und es ist ein ziemlich langer Code, also war es für die Frage irrelevant.
Ich denke, ich habe den Unterschied zwischen C ++ und C gelernt, danke, dass Sie darauf hingewiesen haben. Und ich werde jetzt versuchen, überladene Operatoren zu verwenden. Und übrigens string::compare
hat auch funktioniert.
Für C ++ verwenden Sie std::string
und vergleichen Sie mit string::compare
.
Für C verwende strcmp
. Wenn Ihre ( ich meine Ihre Programme gemeint sind) Zeichenfolgen ( aus irgendeinem seltsamen Grund ) nicht nul
beendet sind, verwenden Sie stattdessen strncmp
.
Aber warum sollte jemand nicht etwas so Einfaches wie ==
für std::string
verwenden?
?
Siehe std::basic_string::compare
und std::basic_string
operators reference (insbesondere gibt es operator==
, operator!=
, operator<
usw.). Was brauchst du noch?
Mit Ihrer Frage: "Gibt es eine Möglichkeit, eine Zeichenfolge mit einem Zeichen zu vergleichen?" meinst du "Wie finde ich heraus, ob ein bestimmtes Zeichen in einer Zeichenfolge enthalten ist?" Wenn ja, die C-Bibliothek-Funktion:
%Vor%wird es für dich tun.
- pete
std :: string kann eingebettete Nullzeichen enthalten (und vergleichen!).
sind * comp (...) vergleicht c-artige Zeichenfolgen und vergleicht sie mit dem ersten Nullzeichen (oder der angegebenen maximalen Anzahl von Bytes / Zeichen)
string :: compare ist tatsächlich als eine Vorlage basic_string implementiert, so dass Sie erwarten können, dass es für andere Typen wie wstring
funktioniertIn der unklaren Phrase, "eine Zeichenkette mit einem Zeichen zu vergleichen", können Sie das Zeichen mit * string.begin () vergleichen oder das erste Vorkommen suchen (string :: find_first_of und string :: find_first_not_of)
Haftungsausschluss: auf meinem HTC eingegeben, Schreibfehler vorbehalten:)
Tags und Links string c c++ char string-comparison