Comment remplacer une partie de la chaîne en C++
-
Utilisez la méthode
replace()
pour remplacer une partie de la chaîne en C++ - Utiliser une fonction personnalisée pour remplacer une partie de la chaîne en C++
-
Utilisez la méthode
regex_replace()
pour remplacer une partie de la chaîne en C++
Cet article présente plusieurs méthodes pour remplacer une partie de la chaîne de caractères en C++.
Utilisez la méthode replace()
pour remplacer une partie de la chaîne en C++
Replace est la méthode de construction de la classe std::string
et fournit la caractéristique exacte de remplacement d’une partie donnée de l’objet chaîne. Le premier paramètre de la fonction indique le caractère de départ où la chaîne donnée est insérée. Le paramètre suivant spécifie la longueur de la sous-chaîne qui doit être remplacée par une nouvelle chaîne de caractères. Enfin, la nouvelle chaîne est passée comme troisième argument. Notez que la méthode replace
modifie l’objet chaîne de caractères sur lequel il est appelé.
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main() {
string input = "Order $_";
string order = "#1190921";
cout << input << endl;
input.replace(input.find("$_"), 2, order);
cout << input << endl;
return EXIT_SUCCESS;
}
Production:
Order $_
Order #1190921
Utiliser une fonction personnalisée pour remplacer une partie de la chaîne en C++
Vous pouvez aussi construire une fonction personnalisée qui retourne un objet chaîne modifié séparé au lieu de faire le remplacement sur place. La fonction prend 3 références aux variables string
: la première chaîne est pour la modification, la deuxième sous-chaîne est pour le remplacement et la troisième chaîne est pour l’insertion. Ici, vous pouvez remarquer que la fonction retourne la chaîne construite par la valeur puisqu’elle a une sémantique de déplacement.
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::string;
string Replace(string& str, const string& sub, const string& mod) {
string tmp(str);
tmp.replace(tmp.find(sub), mod.length(), mod);
return tmp;
}
int main() {
string input = "Order $_";
string order = "#1190921";
cout << input << endl;
string output = Replace(input, "$_", order);
cout << output << endl;
return EXIT_SUCCESS;
}
Production:
Order $_
Order #1190921
Utilisez la méthode regex_replace()
pour remplacer une partie de la chaîne en C++
Une autre méthode utile que vous pouvez utiliser pour résoudre ce problème est l’utilisation de regex_replace
; cela fait partie de la bibliothèque d’expressions régulières STL, qui est définie dans l’en-tête <regex>
. Cette méthode utilise regex
pour faire correspondre les caractères d’une chaîne donnée et remplacer la séquence par une chaîne passée. Dans l’exemple suivant, regex_replace
construit un nouvel objet chaîne de caractères.
#include <iostream>
#include <regex>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::regex;
using std::regex_replace;
using std::string;
int main() {
string input = "Order $_";
string order = "#1190921";
cout << input << endl;
string output = regex_replace(input, regex("\\$_"), order);
cout << output << endl;
return EXIT_SUCCESS;
}
Production:
Order $_
Order #1190921
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn FacebookArticle connexe - C++ String
- Comparaison de chaîne et de caractère en C++
- Supprimer le dernier caractère d'une chaîne en C++
- Obtenir le dernier caractère d'une chaîne en C++
- Différences entre l'opérateur sizeof et la fonction strlen pour les chaînes en C++
- Effacer la chaîne en C++
- Imprimer toutes les permutations de la chaîne en C++