Est-ce possible en C++ pour remplacer une partie d’une chaîne par une autre chaîne. Fondamentalement, je tiens à le faire
mais je voudrais utiliser les bibliothèques C++ Standard.
Est-ce possible en C++ pour remplacer une partie d’une chaîne par une autre chaîne. Fondamentalement, je tiens à le faire
mais je voudrais utiliser les bibliothèques C++ Standard.
Il y a une fonction pour rechercher une sous-chaîne dans une chaîne de caractères (find
), et une fonction pour remplacer une gamme donnée dans une chaîne par une autre chaîne (replace
), de sorte que vous pouvez combiner pour obtenir l'effet que vous voulez:
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");
En réponse à un commentaire, je pense que replaceAll
serait probablement ressembler à quelque chose comme ceci:
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'
}
}
a une [
](http://www.cplusplus.com/reference/string/string/replace/) méthode, qui est ce que vous cherchez ?
Vous pouvez essayer :
Je n’ai pas essayé moi-même, il suffit de lire la documentation sur et
.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.