C ++ String Ersetzen

C ++ String Ersetzen
C ++-Zeichenfolge Ersetzen Sie Angebote mit dem Lokalisieren einer bestimmten Unterstring in einer Zielzeichenfolge und dem Ersetzen. Eine Zeichenfolge kann auf zwei Hauptarten erstellt werden: Verwenden eines konstanten Zeichenzeigers (Zeichenanordnungss. Die String -Klasse hat eine Ersatz () Mitgliedsfunktion. Dies macht das Lokalisieren und Austausch. Das Auffinden und Austausch erfolgt mit instanziierten String -Objekten und nicht mit Zeichenfolgen, die mit einem konstanten Zeichenzeiger erstellt wurden.

Das String -Objekt ist eine Datenstruktur, und seine Hauptkomponente ist eine Liste. Jede Zelle dieser Liste hat einen Charakter. Die Gesamtsequenz der Zeichen bildet die wörtliche Zeichenfolge. Jede Zeichenposition kann von einem Index oder einem Iterator zugegriffen werden. Die Indexzählung beginnt von Null. Ein Iterator ist ein ausgefeilter Zeiger.

Die C+ String -Klasse hat unterschiedliche Varianten der Ersatz () -Member -Funktion. Eine solche Reihe von Funktionen werden überlastete Funktionen bezeichnet. In diesem Artikel werden erläutert.

Die folgende Zielzeichenfolge wird für alle Beispiele verwendet:

"Unser Planet hat 24 Stunden am Tag."

Auf das Element (Zeichen) eines String -Objekts kann entweder durch eine Referenz oder durch einen Iterator zugegriffen werden. C ++ 20 verfügt tatsächlich über 14 überlastete Ersatz () -Member -Funktionen für die String -Klasse. Mit sieben dieser Funktionen werden auf die Elemente durch Bezugnahme zugegriffen, während mit den anderen sieben die Elemente von einem Iterator zugegriffen werden.

In diesem Artikel werden die siebenköpfigen Funktionen, auf die die Elemente durch Bezug genommen werden, erläutert. Nur eine für die verbleibenden sieben für Iteratoren wird erklärt. Mit der Kenntnis dessen, für den der Iterator auf Elemente zugreift, kann der Leser die Erklärung für die verbleibenden sechs abgeben.

Basic_String & Ersatz (size_type pos1, size_type n1, const t & t)

Diese Mitgliedsfunktion geht in den Index bei POS1, misst dann eine Unterstriche der Länge N1 (ab POS1) und ersetzt sie durch eine andere unabhängige Unterstriche von Array-of-CHARS. Die Unterstring ist ersetzt und die Unterstring muss nicht von der gleichen Länge aussehen. Das folgende Programm zeigt dies:

#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()

String target = String ("Unser Planet hat 24 Stunden pro Tag.");
Zeichenersatz [] = "Solar Home";
String -Ergebnis = Ziel.ersetzen (4, 6, Ersatz);
Cout << result << endl;
Rückkehr 0;

Die Ausgabe ist:

Unser Solarhaus hat 24 Stunden am Tag.

Die zurückgegebene Zeichenfolge ist ein String -Objekt. Um die Funktion Ersatz () Mitglied der String -Klasse zu verwenden, muss die String -Bibliothek in das Programm aufgenommen werden (mit einer Anweisung).

Hinweis: Der gesamte String -Code für diesen Artikel befindet sich in der C ++ - Hauptfunktion.

Basic_String & Ersatz (size_type pos, size_type n1, const chart* s)

Diese Mitgliedsfunktion ist fast die gleiche wie die oben genannten. Es geht zum Index bei POS, misst eine Unterstriche der Länge N1 (ab POS) und ersetzt ihn durch eine andere unabhängige Unterstrich. Die ersetzte Unterstring- und Ersatz-Sub-String muss nicht gleich lang sein. Das folgende Programm zeigt dies:

#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()

String target = String ("Unser Planet hat 24 Stunden pro Tag.");
const char* ersatz = "Solarhaus";
String -Ergebnis = Ziel.ersetzen (4, 6, Ersatz);
Cout << result << endl;
Rückkehr 0;

Die Ausgabe ist:

Unser Solarhaus hat 24 Stunden am Tag.

Basic_String & Ersatz (size_type pos1, size_type n1, const Basic_string & str)

Diese Mitgliedsfunktion ist ähnlich wie bei der oben genannten. Die Ersatzstring ist jedoch ein String -Objekt, das aus der String -Klasse instanziiert wurde. Das folgende Programm zeigt dies:

#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()

String target = String ("Unser Planet hat 24 Stunden pro Tag.");
String ersatz = String ("Solar Home");
String -Ergebnis = Ziel.ersetzen (4, 6, Ersatz);
Cout << result << endl;
Rückkehr 0;

Die Ausgabe ist:

Unser Solarhaus hat 24 Stunden am Tag.

Basic_String & Ersatz (size_type pos, size_type n1, size_type n2, Diagramm c)

Diese Mitgliedsfunktion ist ähnlich wie bei der oben genannten. Die Ersatzfolge ist jedoch das gleiche Zeichen, wiederholt das N2 -Mal. Beachten Sie, dass es für diese Funktion vier Parameter gibt. Das folgende Programm zeigt die Verwendung:

#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()

String target = String ("Unser Planet hat 24 Stunden pro Tag.");
String -Ergebnis = Ziel.ersetzen (4, 6, 3, 'e');
Cout << result << endl;
Rückkehr 0;

Die Ausgabe ist:

Unser EEE hat 24 Stunden am Tag.

"Planet" wurde durch drei E (für die Erde) ersetzt.

Basic_string & Ersatz (size_type pos, size_type n1, const chart* s, size_type n2)

Diese Mitgliedsfunktion ist ähnlich wie bei der oben genannten. Die Ersatzzeichenfolge ist jedoch ein konstanter Zeiger auf Zeichen, dessen erste N2 -Zeichen für den Austausch verwendet werden. Das folgende Programm zeigt dies:

#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()

String target = String ("Unser Planet hat 24 Stunden pro Tag.");
const char* ersatz = "Erdwelt";
String -Ergebnis = Ziel.ersetzen (4, 6, Ersatz, 5);
Cout << result << endl;
Rückkehr 0;

Die Ausgabe ist:

Unsere Erde hat 24 Stunden am Tag.

Basic_string & Ersatz (size_type pos1, size_type n1, const t & t, size_type pos2, size_type n2 = npos)

Diese Mitgliedsfunktion ist ähnlich wie bei der oben genannten. Die Ersetzungsfolge ist jedoch ein Array-of-Great. Wenn das vierte Argument dieser Funktion nicht vorhanden ist, wird die Anzahl der Zeichen für den Ersatz von POS2 bis zum Ende des Array-of-Gärerns erfolgt. Andernfalls sind es N2 -Zeichen von POS2. Das folgende Programm zeigt dies:

#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()

String target = String ("Unser Planet hat 24 Stunden pro Tag.");
Zeichenersatz [] = "Die Erdwelt";
String -Ergebnis = Ziel.Ersetzen (4, 6, Ersatz, 4, 5);
Cout << result << endl;
Rückkehr 0;

Die Ausgabe ist:

Unsere Erde hat 24 Stunden am Tag.

Basic_string & Ersatz (size_type pos1, size_type n1, const Basic_string & str, size_type pos2, size_type n2 = npos)

Diese Mitgliedsfunktion ist ähnlich wie bei der oben genannten. Die Ersatzstring ist jedoch ein String -Objekt, das aus der String -Klasse instanziiert wurde. Der folgende Code zeigt dies:

#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()

String target = String ("Unser Planet hat 24 Stunden pro Tag.");
String ersatz = string ("die Erdwelt");
String -Ergebnis = Ziel.Ersetzen (4, 6, Ersatz, 4, 5);
Cout << result << endl;
Rückkehr 0;

Die Ausgabe ist:

Unsere Erde hat 24 Stunden am Tag.

Basic_String & Ersatz (const_iterator i1, const_iterator i2, const Basic_string & str)

Diese Mitgliedsfunktion geht an das Element (Zeichen) der Zielzeichenfolge, auf die vom Iterator i1 hingewiesen wurde; Anschließend werden Charaktere bis zu dem von The Iterator i2 gezeigt berücksichtigt. Dieser Bereich soll durch alle Zeichen eines String -Objekts ersetzt werden, das aus einer Klasse instanziiert wird. Das folgende Programm zeigt dies:

#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()

String target = String ("Unser Planet hat 24 Stunden pro Tag.");
String ersatz = string ("Solarwelt");
String :: Iterator it1 = Ziel.Start();
it1 = it1 + 4;
String :: Iterator it2 = Ziel.Start();
IT2 = IT2 + 10;
String -Ergebnis = Ziel.ersetzen (IT1, IT2, Ersatz);
Cout << result << endl;
Rückkehr 0;

Die Ausgabe ist:

Unsere Solarwelt hat 24 Stunden am Tag.

Das letzte Element des Bereichs, auf das der zweite Iterator hingewiesen wurde, nahm nicht am Ersatz teil; Es war nur der obere Trennzeichen.

Zwei Iteratoren, IT1 und IT2, wurden verwendet. Jedes wurde von der Member -Funktion der String -Klasse von Beginn () erhalten. Die Funktion "start ()) gibt einen Iterator zurück, der auf das erste Element des String -Objekts verweist. Um IT1 auf 'p' von "Planet" in Index 4 der Zielstring zu vermitteln, musste IT1 um 4 erhöht werden. Um IT2 auf "kurz nach" Planet "bei Index 10 der Zielzeichenfolge zu machen, musste IT2 um 10 erhöht werden.

Abschluss

Es handelt sich um eine Unterstriche der Liste eines String-Objekts, das aus einer String-Klasse instanziiert ist und für den Ersatz berücksichtigt wird. Eine Substring einer als Array-of-Carray oder konstanten Zeiger auf Zeichen gekennzeichneten Zeichenfolge wird für den Austausch nicht berücksichtigt. Die Ersetzungsfolge ist eine weitere unabhängige Zeichenfolge. Die gesamte Saitenladerin der Ersatzschnur kann den Ersatz ausführen, oder ein Teil davon kann immer noch den Austausch durchführen. Die C ++ 20 -String -Klasse hat 14 Mitglieder überlastete Funktionen für den Ersatz, von denen 8 oben erläutert wurden.