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
Barbara StreisandOriginal
2024-11-08 03:18:01633Durchsuche

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);

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.");

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"

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?");

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");

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!

Stellungnahme:
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