Wie ersetzt man einen Teil der Zeichenkette in C++
-
Verwenden Sie die Methode
replace()
, um einen Teil der Zeichenkette in C++ zu ersetzen - Benutzerdefinierte Funktion zum Ersetzen eines Teils der Zeichenkette in C++ verwenden
-
Verwenden Sie die Methode
regex_replace()
, um einen Teil der Zeichenkette in C++ zu ersetzen
Dieser Artikel demonstriert mehrere Methoden, wie Sie einen Teil der Zeichenkette in C++ ersetzen können.
Verwenden Sie die Methode replace()
, um einen Teil der Zeichenkette in C++ zu ersetzen
replace
ist die eingebaute Methode der Klasse std::string
und bietet die genaue Funktion, einen bestimmten Teil des String-Objekts zu ersetzen. Der erste Parameter der Funktion gibt das Anfangszeichen an, an dem die gegebene Zeichenkette eingefügt wird. Der nächste Parameter gibt die Länge der Teilzeichenkette an, die durch eine neue Zeichenkette ersetzt werden soll. Schließlich wird die neue Zeichenkette als drittes Argument übergeben. Beachten Sie, dass die replace
-Methode das String-Objekt, auf dem sie aufgerufen wird, modifiziert.
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main() {
string input = "Order $_";
string order = "#1190921";
cout << input << endl;
input.replace(input.find("$_"), 2, order);
cout << input << endl;
return EXIT_SUCCESS;
}
Ausgabe:
Order $_
Order #1190921
Benutzerdefinierte Funktion zum Ersetzen eines Teils der Zeichenkette in C++ verwenden
Alternativ können Sie eine benutzerdefinierte Funktion konstruieren, die ein separates modifiziertes String-Objekt zurückgibt, anstatt die Ersetzung an Ort und Stelle vorzunehmen. Die Funktion nimmt 3 Verweise auf String
-Variablen entgegen: die erste Zeichenkette ist zum Modifizieren, die zweite Teilzeichenkette zum Ersetzen und die dritte Zeichenkette zum Einfügen. Hier können Sie feststellen, dass die Funktion konstruierte Zeichenkette nach dem Wert zurückgibt, da sie eine Verschiebungssemantik hat.
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::string;
string Replace(string& str, const string& sub, const string& mod) {
string tmp(str);
tmp.replace(tmp.find(sub), mod.length(), mod);
return tmp;
}
int main() {
string input = "Order $_";
string order = "#1190921";
cout << input << endl;
string output = Replace(input, "$_", order);
cout << output << endl;
return EXIT_SUCCESS;
}
Ausgabe:
Order $_
Order #1190921
Verwenden Sie die Methode regex_replace()
, um einen Teil der Zeichenkette in C++ zu ersetzen
Eine andere nützliche Methode, die Sie zur Lösung dieses Problems verwenden können, ist die Verwendung von regex_replace
; sie ist Teil der STL-Bibliothek für reguläre Ausdrücke, die in der Kopfzeile <regex>
definiert ist. Diese Methode verwendet regex
, um die Zeichen in einer gegebenen Zeichenkette abzugleichen und die Sequenz durch eine übergebene Zeichenkette zu ersetzen. Im folgenden Beispiel konstruiert regex_replace
ein neues Zeichenkettenobjekt.
#include <iostream>
#include <regex>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::regex;
using std::regex_replace;
using std::string;
int main() {
string input = "Order $_";
string order = "#1190921";
cout << input << endl;
string output = regex_replace(input, regex("\\$_"), order);
cout << output << endl;
return EXIT_SUCCESS;
}
Ausgabe:
Order $_
Order #1190921
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn FacebookVerwandter Artikel - C++ String
- Finden Sie das erste sich wiederholende Zeichen in einer Zeichenfolge in C++
- Finden Sie die längste gemeinsame Teilzeichenfolge in C++
- Großschreiben des ersten Buchstabens einer Zeichenfolge in C++
- Vergleich von String und Character in C++
- Entfernen Sie das letzte Zeichen aus einer Zeichenkette in C++
- Abrufen des letzten Zeichens einer Zeichenkette in C++