Maison >développement back-end >C++ >Comment puis-je remplacer des parties d'une chaîne en 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");
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' } }
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!