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>
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;
cout kopiert die letzten 3 Zeichen am Anfang der Originalzeichenfolge. Das Druckergebnis ist che.
string str2("chenyufeng",2,3); cout << str2 << endl;
cout kopiert die letzten 3 Zeichen vom Anfang der ursprünglichen Zeichenfolge index=2. Das gedruckte Ergebnis ist eny.
// = :字符串赋值 str2 = "Robert"; cout << str2 << endl;
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;
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;
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;
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;
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;
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; }
(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;
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; }
(10) Der Eingabe- und Ausgabestream der Zeichenfolge
// 输入输出stream cout << "请输入一个字符串"<<endl; string stringInput; cin >> stringInput; cout << "stringInput = " << stringInput << endl;
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;
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] = '6'; stringAt.at(5) = '9'; cout << "stringAt = " << stringAt << endl;
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;
(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;
(15) find: Finden Sie einen Zeichen
// find string stringFind = "chenyufeng"; stringFind.find('n'); cout << "stringFind.find('n') = " << stringFind.find('n') << endl; cout << "stringFind.find_first_of('e') = " << stringFind.find_first_of('e') << endl; cout << "stringFind.find_last_of('e') = " << stringFind.find_last_of('e') << endl;
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).