Maison > développement back-end > C++ > Comment puis-je remplacer efficacement des sous-chaînes en C ?

Comment puis-je remplacer efficacement des sous-chaînes en C ?

DDD
Libérer: 2024-12-19 20:10:11
original
755 Les gens l'ont consulté

How Can I Efficiently Replace Substrings in C  ?

Remplacer un fragment de chaîne par une nouvelle chaîne

Remplacer une partie spécifique d'une chaîne par une chaîne alternative est une tâche courante en programmation. En C , les bibliothèques standards fournissent une solution pratique pour y parvenir.

Pour remplacer une sous-chaîne, vous pouvez utiliser la fonction find() pour localiser la position de départ de la sous-chaîne cible dans la chaîne d'origine. Par la suite, vous pouvez utiliser la fonction replace() pour remplacer la sous-chaîne cible par la chaîne de remplacement souhaitée.

L'extrait de code suivant illustre le processus :

bool replace(std::string& str, const std::string& from, const std::string& to) {
    size_t start_pos = str.find(from);
    if(start_pos == std::string::npos)
        return false;
    str.replace(start_pos, from.length(), to);
    return true;
}

std::string string("hello $name");
replace(string, "$name", "Somename");
Copier après la connexion

En employant cette approche, vous peut modifier efficacement une partie d'une chaîne selon les besoins.

Gestion de plusieurs Remplacements

Dans certains scénarios, vous devrez peut-être remplacer plusieurs instances d'une sous-chaîne particulière dans une chaîne. Pour résoudre ce problème, vous pouvez envisager la fonction replaceAll(), qui ressemblerait à ce qui suit :

void replaceAll(std::string& str, const std::string& from, const std::string& to) {
    if(from.empty())
        return;
    size_t start_pos = 0;
    while((start_pos = str.find(from, start_pos)) != std::string::npos) {
        str.replace(start_pos, from.length(), to);
        start_pos += to.length(); // In case 'to' contains 'from', like replacing 'x' with 'yx'
    }
}
Copier après la connexion

Cette fonction parcourt la chaîne, localisant et remplaçant toutes les occurrences de la sous-chaîne spécifiée par la chaîne de remplacement fournie.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal