Latest web development tutorials

C ++ String

C ++ bietet eine String-Darstellung der folgenden zwei Arten:

  • C-Strings
  • C ++ String-Klasse-Typ eingeführt

C-Strings

C-Strings ihren Ursprung in der Sprache C und C ++ wird weiterhin unterstützt werden. String ist eigentlichNull - Zeichen '\ 0' eindimensionale Anordnung von Zeichen beendet verwendet.Daher ist ein nullterminierten String, der die Zeichen der Zeichenfolge enthält.

Die folgenden Anweisungen erstellen und initialisieren ein "Hallo" string. Seit dem Ende des Arrays der Null-Zeichen zu speichern, so dass die Größe des Feldes von Zeichen als das Wort "Hallo" ist mehr als eine Anzahl von Zeichen.

char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};

Basierend Feldinitialisierung Regeln können Sie die obige Aussage die folgende Anweisung schreiben:

char greeting[] = "Hello";

Es folgt eine Reihe von C / C ++ im Speicher definiert ist, sagte er:

C / C ++ String-Darstellung

In der Tat, müssen Sie nicht dieNull- Zeichen am Ende der Zeichenfolge konstant. Wenn der Compiler Feldinitialisierung ++ C, automatisch '\ 0' am Ende des Strings. Lassen Sie uns die oben Ausgabestring versuchen:

#include <iostream>

using namespace std;

int main ()
{
   char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};

   cout << "Greeting message: ";
   cout << greeting << endl;

   return 0;
}

Wenn der obige Code kompiliert und ausgeführt wird, erzeugt es die folgenden Ergebnisse:

Greeting message: Hello

C ++ hat eine Vielzahl von Funktionen für die Manipulation von nullterminierten String von: unterstützt eine breite Palette von Funktionen, die nullterminierten Strings manipulieren:

序号函数 & 目的
1strcpy(s1, s2);
复制字符串 s2 到字符串 s1。
2strcat(s1, s2);
连接字符串 s2 到字符串 s1 的末尾。
3strlen(s1);
返回字符串 s1 的长度。
4strcmp(s1, s2);
如果 s1 和 s2 是相同的,则返回 0;如果 s1<s2 则返回小于 0;如果 s1>s2 则返回大于 0。
5strchr(s1, ch);
返回一个指针,指向字符串 s1 中字符 ch 的第一次出现的位置。
6strstr(s1, s2);
返回一个指针,指向字符串 s1 中字符串 s2 的第一次出现的位置。

Das folgende Beispiel verwendet einige der oben genannten Funktionen:

#include <iostream>
#include <cstring>

using namespace std;

int main ()
{
   char str1[10] = "Hello";
   char str2[10] = "World";
   char str3[10];
   int  len ;

   // 复制 str1 到 str3
   strcpy( str3, str1);
   cout << "strcpy( str3, str1) : " << str3 << endl;

   // 连接 str1 和 str2
   strcat( str1, str2);
   cout << "strcat( str1, str2): " << str1 << endl;

   // 连接后,str1 的总长度
   len = strlen(str1);
   cout << "strlen(str1) : " << len << endl;

   return 0;
}

Wenn der obige Code kompiliert und ausgeführt wird, erzeugt es die folgenden Ergebnisse:

strcpy( str3, str1) : Hello
strcat( str1, str2): HelloWorld
strlen(str1) : 10

In C ++ String-Klasse

C ++ Standardbibliothek stellt eineString - Klasse - Typ unterstützt alle oben beschriebenen Vorgänge, und fügt auch viele weitere Funktionen.Wir werden C ++ Standard-Bibliothek Klasse lernen, jetzt schauen wir uns die folgenden Beispiele einen Blick:

Jetzt können Sie noch kein umfassendes Verständnis dieses Beispiels sein, denn bisher haben wir nicht diskutiert Klassen und Objekte haben. Nach so können Sie jetzt nur grobe Blick auf dieses Beispiel, und so verstehen diese Instanz objektorientierte Konzepte kommen wieder um und zu verstehen.

#include <iostream>
#include <string>

using namespace std;

int main ()
{
   string str1 = "Hello";
   string str2 = "World";
   string str3;
   int  len ;

   // 复制 str1 到 str3
   str3 = str1;
   cout << "str3 : " << str3 << endl;

   // 连接 str1 和 str2
   str3 = str1 + str2;
   cout << "str1 + str2 : " << str3 << endl;

   // 连接后,str3 的总长度
   len = str3.size();
   cout << "str3.size() :  " << len << endl;

   return 0;
}

Wenn der obige Code kompiliert und ausgeführt wird, erzeugt es die folgenden Ergebnisse:

str3 : Hello
str1 + str2 : HelloWorld
str3.size() :  10