C++ Substrings finden und ersetzen

C++ Substrings finden und ersetzen

Teil 48 des Workshops "C++ Programmieren lernen"

von -
C++ Substrings finden und ersetzen

Die <string> Bibliothek enthält außerdem eine Reihe von nützlichen Funktionen zur Manipulation von Substrings. So kann zum Beispiel durch die Funktion insert() eine Zeichenkette in eine eingefügt werden. Dazu ist die Position erforderlich, an der das Einfügen des Substrings beginnen soll. Deshalb enthält das erste Argument in der Klammer die Positionsangabe, an zweiter Stelle folgt die einzusetzende Zeichenkette. Optional kann diese Funktion noch ein drittes und viertes Argument besitzen. Sie legen den Startpunkt für das Kopieren fest und geben an, wie viele Zeichen kopiert werden sollen.

 

Die Funktion replace() kombiniert fast die Funktionen erase() und insert(), beide entfernen Zeichen aus dem String und ersetzen sie durch andere. Das erfordert in der Klammer drei Argumente:

  • die Position, ab der ausgetauscht werden soll,
  • die Anzahl der Zeichen, die gelöscht werden sollen und
  • die Zeichen, die den Substring ersetzen sollen.

Auch bei der Funktion replace() kann optional ein viertes und fünftes Argument verwendet werden. Sie legen den Startpunkt für das Kopieren des Substrings fest und geben an, wie viele Zeichen kopiert werden sollen.

Durch die Funktion substr() kann ein Teil einer Zeichenkette kopiert werden. Das erfordert die Angabe der Position an welcher der Kopiervorgang beginnen soll als erstes Argument und die Anzahl der zu kopierenden Zeichen als zweites Argument.

Das Zeichen an einer bestimmten Position innerhalb des Strings kann durch die Funktion at() ermittelt und kopiert werden. Dazu ist die Angabe der Position als Argument erforderlich. Das letzte Zeichen einer Zeichenkette hat eine Positionsangabe, die um eine Zahl kleiner ist als die Länge der Zeichenkette. Das liegt daran, dass die Zählung mit Null beginnt und nicht mit Eins.

Das folgende Programm zeigt die Funktionen in der Praxis.

 

Übung: Substrings finden und ersetzen

Programm: sub.cpp

 

#include <string>

#include <iostream>

using namespace std;

int main()

{

            string text = "Ich liebe das Meer!";

            cout << "Originaltext: " << text << endl;




            //Substring einfuegen

            text.insert( 10,"die Palmen und ");

            cout << "Eingefuegt: " << text << endl;




            //Vier Zeichen aus dem modifizierten String entfernen

            text.erase(10, 4); //Startposition 10, vier Zeichen loeschen

            cout << "Vier Zeichen geloescht: " << text << endl;




            //20 Zeichen ab Position 10 loeschen und ersetzen

            text.replace(10, 20, "Urlaub");

            cout << "Geaenderter Text: " <<text << endl;

            //

            cout << "Kopiert: " << text.substr(4, 5) << endl;

            cout << "Letztes Zeichen: " << text.at(text.size() -1) <<endl;




            system("pause");

            return 0;

}

 

Zeichen suchen und ersetzen.
Zeichen suchen und ersetzen.

Für den C++ Programmierer ist das Arbeiten mit Zeichenketten oft eine zeitraubende und nervige Angelegenheit. Zum Glück bieten die Funktionen aus der <string> Bibliothek den unschätzbaren Vorteil dass sie den jeweils notwendigen Speicherplatz automatisch reservieren.

 

 

Dieser Artikel ist Teil unseres kostenlosen Workshops “C++ Programmieren lernen” – Geeignet für Einsteiger und Fortgeschrittene. Machen auch Sie mit und lernen Sie in 50 Artikeln, wie Sie Programme selbst schreiben!

 

 

Artikelbild: Fotolia / bramgino

 

 

Keine Kommentare

Kommentar hinterlassen (Freischaltung erfolgt in Kürze)