Maison > développement back-end > C++ > Comment puis-je remplacer des parties d'une chaîne en C ?

Comment puis-je remplacer des parties d'une chaîne en C ?

DDD
Libérer: 2024-12-22 18:08:11
original
734 Les gens l'ont consulté

How Can I Replace Parts of a String in C  ?

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

En C , remplacer une partie d'une chaîne par une autre chaîne nécessite une combinaison d'opérations. Bien que certaines bibliothèques proposent une fonction replace() dédiée pour les remplacements directs, voici comment vous pouvez l'aborder à l'aide des fonctions C standard :

Utilisation des fonctions find() et replace()

La fonction find() localise la position d'une sous-chaîne dans une chaîne. En combinant cela avec la fonction replace(), qui remplace une plage spécifiée par une autre chaîne, vous pouvez effectivement remplacer une partie de la chaîne :

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

Cette approche remplace la première occurrence de la sous-chaîne "$name " par "Somename."

Remplacement de toutes les occurrences par replaceAll

Pour remplacer toutes les occurrences d'un sous-chaîne, vous pouvez étendre la méthode replace() pour rechercher et remplacer plusieurs instances dans la chaîne :

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(); // Adjust start position if 'to' contains 'from'
    }
}
Copier après la connexion

Cette fonction effectue un remplacement successif de toutes les occurrences de la sous-chaîne "de" par la chaîne "à " dans la chaîne donnée.

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