Verwendung von Strings in C++

黄舟
Freigeben: 2017-02-06 13:35:04
Original
1441 Leute haben es durchsucht

Wenn wir die C-Sprache zum ersten Mal zum Verarbeiten von Zeichenfolgen verwenden, wird dies sehr problematisch sein. In der Sprache C mangelt es an entsprechenden String-Verarbeitungsfunktionen. Wenn wir eine bestimmte String-Funktion implementieren möchten, können wir dies nur selbst tun. Aber wenn es um C++ geht, wird die String-Verarbeitung extrem einfach. Heute lernen wir die am häufigsten verwendeten String-Verarbeitungsfunktionen in C++ kennen. Beispielcode wird hochgeladen unter: https://github.com/chenyufeng1991/CppString.

Führen Sie zunächst die String-Header-Datei in C++ ein:

#include <string>
Nach dem Login kopieren


Bitte beachten Sie, dass die Header-Datei hier nicht .h enthält, da dies sonst der Fall ist Es ist zu einer Header-Datei in der C-Sprache geworden.

(1) Erstellen Sie eine Zeichenfolge


Es gibt mehrere Konstruktionsmethoden zum Erstellen einer Zeichenfolge. Die typischste Methode ist die Verwendung des Kopierkonstruktors

string str("chenyufeng",3);  
cout << str << endl;
Nach dem Login kopieren

cout kopiert die letzten 3 Zeichen am Anfang der Originalzeichenfolge. Das Druckergebnis ist che.

string str2("chenyufeng",2,3);  
cout << str2 << endl;
Nach dem Login kopieren


cout kopiert die letzten 3 Zeichen vom Anfang der ursprünglichen Zeichenfolge index=2. Das gedruckte Ergebnis ist eny.

// = :字符串赋值  
str2 = "Robert";  
cout << str2 << endl;
Nach dem Login kopieren


Sie können einer Variablen auch einen String-Wert durch direkte Zuweisung zuweisen, indem Sie „=" verwenden. Das gedruckte Ergebnis ist Robert.


(2) Swap: Tauschen Sie die Werte der beiden Zeichenfolgen aus

// swap:交换两个字符串的值  
  string string1 = "chen";  
   string string2 = "yufeng";  
   swap(string1, string2);  
   cout << "string1 = " << string1 << ";string2 = " << string2 << endl;
Nach dem Login kopieren


Das gedruckte Ergebnis wurde mit dem ursprünglichen String-Wert ausgetauscht.


(3)+, anhängen: Zeichenfolge hinzufügen

// += ,append:在尾部添加字符串  
   string stringOrigin = "chen";  
    string stringAppend = "yufeng";  
    stringOrigin = stringOrigin + stringAppend;  
    cout << "stringOrigin = " << stringOrigin << endl;  
  
    stringOrigin.append("_OK");  
    cout << "stringOriginAppend = " << stringOrigin << endl;
Nach dem Login kopieren


Beachten Sie, dass die Operation zum Hinzufügen einer Zeichenfolge The ist Die ursprüngliche Zeichenfolge wird geändert. Sie können das +-Zeichen direkt zum Hinzufügen von Zeichenfolgen verwenden, was sehr praktisch ist.


(4) Einfügen: Fügen Sie eine Zeichenfolge an der angegebenen Position ein

// insert:在指定position插入字符串  
  string stringInsertOrigin = "chenyufeng";  
    stringInsertOrigin.insert(3, "__");  
    cout << "stringInsertOrigin = " << stringInsertOrigin << endl;
Nach dem Login kopieren


Der obige Code kann sein gefunden in indx= Fügen Sie __underscore an Position 3 ein, und das gedruckte Ergebnis ist che__nyufeng.


(5) löschen, löschen, um die Zeichenfolge zu löschen

// erase: 删除字符 
  string stringEraseOrigin = "chenyufeng";  
   stringEraseOrigin.erase();  
   cout << "stringEraseOrigin = " << stringEraseOrigin << endl;  
  
  
   // clear :删除全部字符  
  string stringClearOrigin = "chenyufeng";  
   stringClearOrigin.clear();  
   cout << "stringClearOrigin = " << stringClearOrigin << endl;
Nach dem Login kopieren


Die oben genannten Vorgänge löschen tatsächlich die Zeichenfolge.


(6) ersetzen: Zeichenfolge ersetzen

// replace: 替换字符串,某个pos位置开始的size个字符替换成后面的“”字符串  
   string stringReplaceOrigin = "chenyufeng";  
    stringReplaceOrigin.replace(3, 2, "66");  
    cout << "stringReplaceOrigin = " << stringReplaceOrigin << endl;
Nach dem Login kopieren


Der obige Code ändert die Zeichenfolge von index=3 Ersetzen Sie die ersten beiden Zeichen durch „66“, und das gedruckte Ergebnis ist che66ufeng.


(7)==,, =: Zeichenfolgengrößen vergleichen


Die Verwendung dieses Operators zum Bearbeiten von Zeichenfolgen in C++ führt tatsächlich zu einer Operatorüberladung. Der Größenvergleich von Zeichenfolgen basiert auf der Wörterbuchreihenfolge der Buchstaben oder dem ASCII-Codewert. Stoppen Sie, bis unterschiedliche Buchstaben der beiden Zeichenfolgen verglichen werden oder die letzte Ziffer einer bestimmten Zeichenfolge verglichen wird.

// ==,<,>,<=,>=:比较字符串  
  string stringLeft = "zhen";  
   string stringRight = "yufeng";  
   if (stringLeft == stringRight)  
   {  
       cout << "equal" << endl;  
   }  
  
   if (stringLeft != stringRight)  
   {  
       cout << "not equal" << endl;  
   }  
  
   if (stringLeft < stringRight)  
   {  
       cout << "stringLeft < stringRight" << endl;  
   }  
  
   if (stringLeft > stringRight)  
   {  
       cout << "stringLeft > stringRight" << endl;  
   }
Nach dem Login kopieren


(8) Größe, Länge: Berechnen Sie die Stringlänge


Die berechnete Stringlänge hier Anders Aus der C-Sprache ist das Ende nicht enthalten und die tatsächliche Länge wird berechnet.

// size(), length():计算字符串长度  
   string stringCount = "chenyufeng";  
    cout << "stringSize = " << stringCount.size() << endl;  
    cout << "stringLength = " << stringCount.length() << endl;
Nach dem Login kopieren


Die obigen Druckergebnisse sind alle 10.


(9) leer: Bestimmen Sie, ob die Zeichenfolge is Ist leer

// empty():判断字符串是否为空  
  string stringIsEmpty = "";  
    string stringNotEmpty = "chen";  
    if (stringIsEmpty.empty())  
    {  
        cout << "stringIsEmpty == empty" << endl;  
    }  
    else  
    {  
        cout << "stringIsEmpty != empty" << endl;  
    }  
  
    if (stringNotEmpty.empty())  
    {  
        cout << "stringNotEmpty == empty" << endl;  
    }  
    else  
    {  
        cout << "stringNotEmpty != empty" << endl;  
    }
Nach dem Login kopieren


(10) Der Eingabe- und Ausgabestream der Zeichenfolge

// 输入输出stream  
  cout << "请输入一个字符串"<<endl;  
    string stringInput;  
    cin >> stringInput;  
    cout << "stringInput = " << stringInput << endl;
Nach dem Login kopieren


Zeichenfolge Außerdem können Eingabe- und Ausgabestreams ähnlich wie andere Datentypen in C++ verwendet werden. Der Eingabestream kann mit der Enter-Taste beendet werden.


(11) max_size: Die maximale Kapazität der Zeichenfolge.

// max_size:  
  string stringMaxSize;  
    cout << "stringMaxSize = " << stringMaxSize.max_size() << endl;
Nach dem Login kopieren


Das gedruckte Ergebnis ist: 18446744073709551599. Gibt an, dass die Zeichenfolge so viele Zeichen enthalten kann.


(12)[], at: Elementzugriff und -änderung

// [],at() :元素存取  
  string stringAt = "chenyufeng";  
    cout << "stringAt[3] = " <<stringAt[3] << endl;  
    cout << "stringAt.at(3) = " << stringAt.at(3) << endl;  
  
    stringAt[3] = &#39;6&#39;;  
    stringAt.at(5) = &#39;9&#39;;  
    cout << "stringAt = " << stringAt << endl;
Nach dem Login kopieren


Strings können mit kombiniert werden Die Vorgänge sind die gleichen wie für Arrays, wobei Indizes für den Zugriff verwendet werden und die ursprüngliche Zeichenfolge geändert werden kann.


(13) Vergleich: Vergleich von Zeichenfolgen, gibt 0, 1, -1 zurück.

// compare()  
   string stringCompare = "chenyufeng";  
    int aaa = stringCompare.compare("chen"); // > 0  
    int bbb = stringCompare.compare("chenyufeng"); // == 0  
    int ccc = stringCompare.compare("done"); // < 0  
    cout << "aaa = " << aaa << ";bbb = " << bbb << ";ccc = " << ccc << endl;
Nach dem Login kopieren


(14) substr: Teilzeichenfolge abrufen

// substr  
   string stringSubstr = "chenyufeng";  
   // 从索引为4开始的3个字符 
    cout << "stringSubstr.substr(4,3) = " << stringSubstr.substr(4,3) << endl;  
  
   // 从索引为4开始的所有字符  
  cout << "stringSubstr.substr(4) = " <<stringSubstr.substr(4) << endl;  
  
   // 整个字符  
  cout << "stringSubstr.substr() = " <<stringSubstr.substr() << endl;
Nach dem Login kopieren


(15) find: Finden Sie einen Zeichen

// find   
  string stringFind = "chenyufeng";  
    stringFind.find(&#39;n&#39;);  
    cout << "stringFind.find(&#39;n&#39;) = " << stringFind.find(&#39;n&#39;) << endl;  
  
    cout << "stringFind.find_first_of(&#39;e&#39;) = " << stringFind.find_first_of(&#39;e&#39;) << endl;  
      
    cout << "stringFind.find_last_of(&#39;e&#39;) = " << stringFind.find_last_of(&#39;e&#39;) << endl;
Nach dem Login kopieren

Die Standardsuchfunktion gibt den Index des ersten Vorkommens eines Zeichens zurück. find_first_of und find_last_of sind die Indizes des ersten bzw. letzten Vorkommens eines bestimmten Zeichens.

Das Obige ist der Inhalt der Verwendung von Zeichenfolgen in C++. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!