Maison > développement back-end > C++ > le corps du texte

Comment remplacer efficacement du texte dans une chaîne en C ?

Barbara Streisand
Libérer: 2024-11-08 03:18:01
original
542 Les gens l'ont consulté

How to Efficiently Replace Text within a String in C  ?

Recherche et remplacement de texte dans une chaîne standard

Dans divers scénarios de programmation, il devient essentiel de manipuler des chaînes en remplaçant des caractères ou des sous-chaînes spécifiques. Pour les chaînes standard en C , il existe des méthodes efficaces pour effectuer des opérations de recherche et de remplacement.

Utilisation de la fonction std::replace

La fonction std::replace fournit un moyen simple de remplacer les occurrences d'une sous-chaîne dans une chaîne. La syntaxe de std::replace est la suivante :

std::string& replace(std::size_t pos, std::size_t n, const std::string& str);
Copier après la connexion

Ici, pos représente la position de départ, n indique le nombre de caractères à remplacer et str est la chaîne de remplacement.

Exemple :

Considérez la chaîne suivante :

std::string s("One hello, two hellos.");
Copier après la connexion

Pour remplacer toutes les instances de "hello" par "world", vous pouvez utiliser le code suivant :

s.replace(s.find("hello"), s.find("hello") + 5, "world"); // Find the position of "hello", replace 5 characters (length of "hello") with "world"
Copier après la connexion

Utilisation de boost::replace_all

La bibliothèque Boost offre une option plus pratique pour effectuer des opérations de recherche et de remplacement avec sa fonction boost::replace_all. Il faut une chaîne, une chaîne à rechercher et une chaîne à remplacer.

Exemple :

Pour remplacer toutes les occurrences de "foo" par "bar" dans la chaîne suivante :

std::string target("Would you like a foo of chocolate. Two foos of chocolate?");
Copier après la connexion

En utilisant boost::replace_all, vous pouvez le faire comme suit :

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

...

boost::replace_all(target, "foo", "bar");
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal