Wie bekomme ich die Anzahl der Zeichen in einer std :: string?
Wie sollte ich die Anzahl der Zeichen in einem string in C++?
InformationsquelleAutor der Frage Elliot | 2009-05-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie sollte ich die Anzahl der Zeichen in einem string in C++?
InformationsquelleAutor der Frage Elliot | 2009-05-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie einen
std::string
rufenlength()
:Wenn Sie einen c-string, rufen Sie
strlen()
.Oder, wenn Sie geschehen, wie die Verwendung von Pascal-Stil der strings (oder f***** strings als Joel Spolsky mag, Sie zu nennenwenn Sie mit einer nachfolgenden NULL), nur dereferenzieren das erste Zeichen.
InformationsquelleAutor der Antwort Eclipse
Beim Umgang mit C++ - strings (std::string), die Sie suchen Länge() oder Größe(). Beide sollten Sie mit dem gleichen Wert. Jedoch beim Umgang mit C-Style-strings, die Sie verwenden würden,strlen().
Ausgabe:
InformationsquelleAutor der Antwort John T
Es hängt davon ab, was string-Typ, den Sie reden. Es gibt viele Arten von strings:
const char*
- a C-Stil multibyte-stringconst wchar_t*
- a C-Stil wide-stringstd::string
- eine "standard" multibyte-stringstd::wstring
- eine "standard" - wide-string3 und 4, können Sie
.size()
oder.length()
Methoden.Für 1 können Sie
strlen()
aber Sie müssen sicherstellen, dass die string-variable nicht den Wert NULL (=== 0)Für 2, können Sie
wcslen()
aber Sie müssen sicherstellen, dass die string-variable nicht den Wert NULL (=== 0)Gibt es andere string-Typen in nicht-standard-C++ - Bibliotheken wie die MFC
CString
ATL ' sCComBSTR
ACEACE_CString
und so weiter, mit Methoden wie.GetLength()
und so weiter. Ich kann mich nicht erinnern die Einzelheiten der Ihnen alles Recht, aus der Spitze von meinem Kopf.Den STLSoft Bibliotheken abstrahiert, das alle sich mit dem, was Sie nennen string Zugriff shimsdie verwendet werden können, um die Länge der Zeichenfolge (und andere Aspekte) aus jedem Typ. Also für alle der oben genannten (einschließlich der nicht-standard-Bibliothek) mit der gleichen Funktion
stlsoft::c_str_len()
. Dieser Artikel beschreibt, wie es funktioniert alles, wie es ist nicht alles völlig offensichtlich oder leicht.InformationsquelleAutor der Antwort dcw
Wenn Sie mit den alten C-Stil-string statt der neueren, STL-style-strings, es gibt die
strlen
Funktion in C run-time library:InformationsquelleAutor der Antwort ChrisW
wenn du mit std::string, gibt es zwei gängige Methoden:
wenn Sie die C-Stil-string ein (mit char * oder const char *), dann Sie können verwenden:
InformationsquelleAutor der Antwort Gal Goldman
.Länge und .Größe sind Synonym, ich denke nur, dass "Länge" ist ein etwas klareres Wort.
InformationsquelleAutor der Antwort Alex Martelli
InformationsquelleAutor der Antwort stefanB
für eine aktuelle string-Objekt:
oder
InformationsquelleAutor der Antwort Luke Schafer
Es könnte der einfachste Weg zur Eingabe einer Zeichenfolge, und finden Sie die Länge.
InformationsquelleAutor der Antwort user2808359
Einfachste Weg, um Länge der Zeichenkette, ohne sich über den std-namespace ist wie folgt
string mit/ohne Leerzeichen
string ohne Leerzeichen
InformationsquelleAutor der Antwort Atul Rokade
In C++ std::string-length() und size() Methode liefert die Anzahl der bytes, und nicht unbedingt die Anzahl der Zeichen !.
Dasselbe mit dem c-Stil sizeof () - Funktion!
Für die meisten druckbaren 7-bit-ASCII-Zeichen dies ist der gleiche Wert, aber für Zeichen, die nicht 7-bit-ASCII ist es definitiv nicht.
Siehe Folgendes Beispiel, um Ihnen echte Ergebnisse (64bit linux).
Gibt es keine einfache c/c++ - Funktion, die wirklich die Anzahl der Zeichen.
Übrigens, alle von diesem Zeug ist von der Implementierung abhängig und kann unterschiedlich sein, auf anderen Umgebungen (compiler, win 16/32, linux, embedded, ...)
Siehe Folgendes Beispiel:
Die Ausgabe des Beispiels ist dieses:
InformationsquelleAutor der Antwort Hape Entner