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.