Suchen und Ersetzen von Text

C++:
Suchen und Ersetzen von Text

Wie geht das?

#include <iostream>
#include <string>

int main() {
    std::string satz = "Hallo Welt! Hallo Programmierer!";
    std::string suchwort = "Hallo";
    std::string ersatzwort = "Tschüss";

    size_t pos = satz.find(suchwort);
    while(pos != std::string::npos) {
        satz.replace(pos, suchwort.length(), ersatzwort);
        pos = satz.find(suchwort, pos + ersatzwort.length());
    }

    std::cout << satz << std::endl; // Tschüss Welt! Tschüss Programmierer!
    return 0;
}

Tiefere Einblicke

Das Konzept des Suchens und Ersetzens gab es schon lange bevor es moderne Computer gab. Ursprünglich manuell in Texten ausgeführt, wurde es mit der Zeit ein fundamentaler Bestandteil von Texteditoren wie sed unter Unix. Heute haben praktisch alle Programmiersprachen eingebaute Funktionen dafür.

In Sachen Alternativen ist regex (Regular Expressions) zu nennen. Sie ermöglichen komplexeres Suchen und Ersetzen unter Verwendung von Mustern statt fester Zeichenketten.

Die Implementierung kann trivial oder komplex sein, abhängig von den Anforderungen. Für einfache Fälle genügt oft eine Standard-Funktion, wie std::string::replace in C++. Bei komplexeren Mustern oder großer Datenmenge könnte man auf spezialisierte Libraries wie Boost.Regex oder sogar parallele Verarbeitung zurückgreifen.

Siehe auch