C++ String
C++ bietet die folgenden zwei Arten der String-Darstellung:
- C-Stil-String
- Der von C++ eingeführte String-Klassentyp
C-Stil-String
Strings im C-Stil stammen aus der Sprache C und werden in C++ weiterhin unterstützt. Ein String ist tatsächlich ein eindimensionales Zeichenarray,Nullzeichen\0das durch ein Nullzeichen abgeschlossen wird. Daher enthält ein nullterminierter String die Zeichen, aus denen der String besteht.
Die folgende Deklaration und Initialisierung erzeugt einenEXAMPLEString. Da am Ende des Arrays ein Nullzeichen gespeichert wird, ist die Größe des Zeichenarrays größer als das WortEXAMPLEEs hat ein Zeichen mehr.
char site[7] = {'R', 'U', 'N', 'O', 'O', 'B', '\0'};
Gemäß den Regeln zur Array-Initialisierung können Sie die obige Anweisung wie folgt schreiben:
char site[] = "EXAMPLE";
Das Folgende ist die Speicherdarstellung von Strings, die in C/C++ definiert sind:
Tatsächlich müssen Sie dasNullzeichen nicht an das Ende der String-Konstante setzen. Bei der Initialisierung des Arrays wird der C++-Compiler es automatisch\0an das Ende des Strings setzen. Versuchen wir, den obigen String auszugeben:
Beispiel
Wenn der obige Code kompiliert und ausgeführt wird, erzeugt er das folgende Ergebnis:
Example: EXAMPLE
C++ hat eine große Anzahl von Funktionen zum Bearbeiten nullterminierter Zeichenketten:
| Laufende Nummer | Funktionen & Zweck |
|---|---|
| 1 | strcpy(s1, s2); Kopiert die Zeichenkette s2 in die Zeichenkette s1. |
| 2 | strcat(s1, s2); Hängt die Zeichenkette s2 an das Ende der Zeichenkette s1 an. Das Verketten von Zeichenketten kann auch+eine Zahl sein, zum Beispiel: string str1 = "example"; string str2 = "google"; string str = str1 + str2; |
| 3 | strlen(s1); Gibt die Länge der Zeichenkette s1 zurück. |
| 4 | strcmp(s1, s2); Wenn s1 und s2 identisch sind, wird 0 zurückgegeben; wenn s1<s2, ist der Rückgabewert kleiner als 0; wenn s1>s2, ist der Rückgabewert größer als 0. |
| 5 | strchr(s1, ch); Gibt einen Zeiger auf das erste Vorkommen des Zeichens ch in der Zeichenkette s1 zurück. |
| 6 | strstr(s1, s2); Gibt einen Zeiger auf das erste Vorkommen der Zeichenkette s2 in der Zeichenkette s1 zurück. |
Das folgende Beispiel verwendet einige der oben genannten Funktionen:
Beispiel
Wenn der obige Code kompiliert und ausgeführt wird, erzeugt er das folgende Ergebnis:
strcpy( str3, str1) : example strcat( str1, str2): examplegoogle strlen(str1) : 12
String-Klasse in C++
Die C++-Standardbibliothek bietetstring,einen Klassentyp, der alle oben genannten Operationen unterstützt und außerdem viele weitere Funktionen bietet. Wir werden diese Klasse in der C++-Standardbibliothek kennenlernen, aber sehen wir uns zunächst das folgende Beispiel an:
Jetzt verstehen Sie dieses Beispiel vielleicht noch nicht vollständig, denn bisher haben wir Klassen und Objekte nicht besprochen. Schauen Sie sich dieses Beispiel also vorerst nur kurz an und kommen Sie später darauf zurück, um es zu verstehen, nachdem Sie die Konzepte der objektorientierten Programmierung erfasst haben.
Beispiel
Wenn der obige Code kompiliert und ausgeführt wird, erzeugt er das folgende Ergebnis:
str3 : example str1 + str2 : examplegoogle str3.size() : 12Weitere Erweiterungen