Maison > développement back-end > C++ > Comment remplacer efficacement les sous-chaînes dans les chaînes C ?

Comment remplacer efficacement les sous-chaînes dans les chaînes C ?

Patricia Arquette
Libérer: 2024-12-22 05:02:13
original
369 Les gens l'ont consulté

How to Efficiently Replace Substrings in C   Strings?

Remplacer une partie d'une chaîne par une autre chaîne

Remplacer une sous-chaîne dans une chaîne est une tâche courante en programmation, et C propose plusieurs façons pour le faire. Une approche consiste à utiliser les fonctions standard de la bibliothèque C find et replace.

Utilisation de find et replace

La fonction find prend une chaîne et une sous-chaîne comme arguments, et elle renvoie la position de la sous-chaîne dans la chaîne. Si la sous-chaîne n'est pas trouvée, find renvoie string :: npos. Pour remplacer une sous-chaîne par une autre sous-chaîne, vous pouvez utiliser la fonction replace. La fonction de remplacement prend une chaîne, une sous-chaîne à remplacer et une nouvelle sous-chaîne par laquelle la remplacer. Voici un exemple :

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

Utilisation de replaceAll

Si vous devez remplacer toutes les occurrences d'une sous-chaîne par une autre sous-chaîne, vous pouvez utiliser une fonction appelée replaceAll. Voici un exemple d'implémentation de replaceAll :

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

replace et replaceAll sont efficaces et simples à utiliser. Ils conviennent au remplacement de sous-chaînes dans des chaînes dans diverses applications.

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