Heim > Backend-Entwicklung > C++ > Wie kann man Text innerhalb einer Zeichenfolge in C effizient ersetzen?

Wie kann man Text innerhalb einer Zeichenfolge in C effizient ersetzen?

Barbara Streisand
Freigeben: 2024-11-08 03:18:01
Original
616 Leute haben es durchsucht

How to Efficiently Replace Text within a String in C  ?

Text in einer Standardzeichenfolge suchen und ersetzen

In verschiedenen Programmierszenarien ist es wichtig, Zeichenfolgen durch Ersetzen bestimmter Zeichen oder Teilzeichenfolgen zu manipulieren. Für Standardzeichenfolgen in C gibt es effektive Methoden zum Durchführen von Such- und Ersetzungsvorgängen.

Verwenden der std::replace-Funktion

Die std::replace-Funktion bietet eine einfache Möglichkeit, Vorkommen eines Teilstrings innerhalb eines Strings zu ersetzen. Die Syntax von std::replace lautet wie folgt:

std::string& replace(std::size_t pos, std::size_t n, const std::string& str);
Nach dem Login kopieren

Hier stellt pos die Startposition dar, n gibt die Anzahl der zu ersetzenden Zeichen an und str ist die Ersetzungszeichenfolge.

Beispiel:

Betrachten Sie die folgende Zeichenfolge:

std::string s("One hello, two hellos.");
Nach dem Login kopieren

Um alle Vorkommen von „hello“ durch „world“ zu ersetzen, können Sie den folgenden Code verwenden:

s.replace(s.find("hello"), s.find("hello") + 5, "world"); // Find the position of "hello", replace 5 characters (length of "hello") with "world"
Nach dem Login kopieren

Verwendung von boost::replace_all

Die Boost-Bibliothek bietet mit ihrer Funktion boost::replace_all eine bequemere Option zum Durchführen von Such- und Ersetzungsvorgängen. Es braucht eine Zeichenfolge, eine Zeichenfolge zum Suchen und eine Zeichenfolge zum Ersetzen.

Beispiel:

So ersetzen Sie alle Vorkommen von „foo“ durch „bar“ in die folgende Zeichenfolge:

std::string target("Would you like a foo of chocolate. Two foos of chocolate?");
Nach dem Login kopieren

Mit boost::replace_all können Sie es wie folgt tun:

#include <boost/algorithm/string.hpp> // Include the Boost library

...

boost::replace_all(target, "foo", "bar");
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann man Text innerhalb einer Zeichenfolge in C effizient ersetzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage