C ++ String Remplacer

C ++ String Remplacer
C ++ String Remplacez les offres par la localisation d'une sous-chaîne particulière dans une chaîne cible, puis en le remplaçant. Une chaîne peut être créée de deux manières principales: en utilisant un pointeur de caractère constant (array char) ou l'instanciation de la classe de chaîne. La classe String a une fonction de membre Remplace (). Cela fait la localisation et le remplacement. La localisation et le remplacement se font avec des objets de chaîne instanciés et non des chaînes créées à l'aide d'un pointeur de caractère constant.

L'objet String est une structure de données, et son composant principal est une liste. Chaque cellule de cette liste a un personnage. La séquence totale de caractères forme la chaîne littérale. Chaque position de caractère est accessible par un index ou par un itérateur. Le comptage d'index commence à partir de zéro. Un itérateur est un pointeur élaboré.

La classe C + String a différentes variantes de la fonction de membre Replace (). Un tel ensemble de fonctions est appelé des fonctions surchargées. Cet article explique comment utiliser différentes fonctions de chaîne surchargée Remplace ().

La chaîne cible suivante sera utilisée pour tous les exemples:

"Notre planète a 24 heures par jour."

L'élément (caractère) d'un objet String peut être accessible par une référence ou par un itérateur. C ++ 20 a en fait 14 fonctions de membre surchargées remplace () pour la classe de chaîne. Avec sept de ces fonctions, les éléments sont accessibles par référence, tandis qu'avec les sept autres, les éléments sont accessibles par un itérateur.

Les fonctions de sept membres, pour lesquelles les éléments sont accessibles par référence, seront expliqués dans cet article. Un seul pour les sept autres, pour les itérateurs, sera expliqué. Avec la connaissance de celui-ci, pour lequel l'itérateur accède aux éléments, le lecteur peut déduire l'explication des six autres.

BASIC_STRING & REMPLACE (SIZE_TYPE POS1, SIZE_TYPE N1, const T&T)

Cette fonction de membre va à l'indice à POS1, puis mesure une sous-chaîne de longueur N1 (à partir de POS1) et la remplace par une autre sous-chaîne indépendante de la gamme de brouillards. La sous-chaîne doit être remplacée, et la sous-chaîne ne doit pas être de la même longueur. Le programme suivant illustre ceci:

#inclure
#inclure
Utilisation de Namespace Std;
int main()

String Target = String ("Notre planète a 24 heures par jour.");
Remplacement de char [] = "Home solaire";
Résultat de la chaîne = cible.remplacer (4, 6, remplacement);
couter << result << endl;
retour 0;

La sortie est:

Notre maison solaire a 24 heures par jour.

La chaîne retournée est un objet de chaîne. Pour utiliser la fonction membre Remplace () de la classe String, la bibliothèque de chaînes doit être incluse dans le programme (avec une directive).

Remarque: Tout le code de chaîne pour cet article est dans la fonction principale C ++.

BASIC_STRING & REMPLACE (SIZE_TYPE POS, SIZE_TYPE N1, CONS CONSTRAGE * S)

Cette fonction membre est presque la même que ce qui précède. Il va à l'indice à POS, mesure une sous-chaîne de longueur N1 (à partir de PO. La sous-chaîne remplacée et le remplacement de la sous-chaîne ne doivent pas être de la même longueur. Le programme suivant illustre ceci:

#inclure
#inclure
Utilisation de Namespace Std;
int main()

String Target = String ("Notre planète a 24 heures par jour.");
const char * remplacement = "Solar Home";
Résultat de la chaîne = cible.remplacer (4, 6, remplacement);
couter << result << endl;
retour 0;

La sortie est:

Notre maison solaire a 24 heures par jour.

BASIC_STRING & REMPLACE (SIZE_TYPE POS1, SIZE_TYPE N1, const Basic_String & Str)

Cette fonction membre est similaire à ce qui précède. Cependant, la chaîne de remplacement est un objet String, instancié à partir de la classe de chaîne. Le programme suivant illustre ceci:

#inclure
#inclure
Utilisation de Namespace Std;
int main()

String Target = String ("Notre planète a 24 heures par jour.");
string remplacement = String ("Solar Home");
Résultat de la chaîne = cible.remplacer (4, 6, remplacement);
couter << result << endl;
retour 0;

La sortie est:

Notre maison solaire a 24 heures par jour.

Basic_String & Remplacer (size_type pos, size_type n1, size_type n2, graphique c)

Cette fonction membre est similaire à ce qui précède. Cependant, la chaîne de remplacement est le même caractère, N2 fois répété. Notez qu'il existe quatre paramètres pour cette fonction. Le programme suivant illustre son utilisation:

#inclure
#inclure
Utilisation de Namespace Std;
int main()

String Target = String ("Notre planète a 24 heures par jour.");
Résultat de la chaîne = cible.remplacer (4, 6, 3, «e»);
couter << result << endl;
retour 0;

La sortie est:

Notre Eee a 24 heures par jour.

"Planet" a été remplacé par trois e (pour la Terre).

BASIC_STRING & REPLACE (SIZE_TYPE POS, SIZE_TYPE N1, CONS CONSTRAGE * S, SIZE_TYPE N2)

Cette fonction membre est similaire à ce qui précède. Cependant, la chaîne de remplacement est un pointeur constant vers Chars, dont les premiers caractères N2 sont utilisés pour le remplacement. Le programme suivant illustre ceci:

#inclure
#inclure
Utilisation de Namespace Std;
int main()

String Target = String ("Notre planète a 24 heures par jour.");
const char * remplacement = "Earth World";
Résultat de la chaîne = cible.remplacer (4, 6, remplacement, 5);
couter << result << endl;
retour 0;

La sortie est:

Notre terre a 24 heures par jour.

Basic_String & Remplacer (size_type pos1, size_type n1, const t & t, size_type pos2, size_type n2 = nPOS)

Cette fonction membre est similaire à ce qui précède. Cependant, la chaîne de remplacement est un tableau de barres dont les caractères N2 sont utilisés pour le remplacement, à partir d'une position de la chaîne de remplacement, POS2, qui n'est pas nécessairement nul. Si le quatrième argument de cette fonction est absent, alors le nombre de caractères pour le remplacement sera de POS2 à la fin de la table de Chars; Sinon, ce sera n2 caractères de POS2. Le programme suivant illustre ceci:

#inclure
#inclure
Utilisation de Namespace Std;
int main()

String Target = String ("Notre planète a 24 heures par jour.");
Remplacement de char [] = "The Earth World";
Résultat de la chaîne = cible.remplacer (4, 6, remplacement, 4, 5);
couter << result << endl;
retour 0;

La sortie est:

Notre terre a 24 heures par jour.

BASIC_STRING & REPLACE (size_type pos1, size_type n1, const Basic_string & Str, size_type pos2, size_type n2 = nPOS)

Cette fonction membre est similaire à ce qui précède. Cependant, la chaîne de remplacement est un objet String, instancié à partir de la classe de chaîne. Le code suivant illustre ceci:

#inclure
#inclure
Utilisation de Namespace Std;
int main()

String Target = String ("Notre planète a 24 heures par jour.");
String remplacement = String ("The Earth World");
Résultat de la chaîne = cible.remplacer (4, 6, remplacement, 4, 5);
couter << result << endl;
retour 0;

La sortie est:

Notre terre a 24 heures par jour.

BASIC_STRING & REMPLACE (const_iterator I1, const_iterator I2, const Basic_string & Str)

Cette fonction de membre va à l'élément (caractère) de la chaîne cible, pointé, par l'itérateur, i1; Il considère ensuite les personnages jusqu'à celui pointé, par l'itérateur, I2. Cette gamme doit être remplacée par tous les caractères d'un objet de chaîne, instanciés à partir d'une classe. Le programme suivant illustre ceci:

#inclure
#inclure
Utilisation de Namespace Std;
int main()

String Target = String ("Notre planète a 24 heures par jour.");
string remplacement = String ("Solar World");
String :: iterator it1 = cible.commencer();
it1 = it1 + 4;
String :: iterator it2 = cible.commencer();
it2 = it2 + 10;
Résultat de la chaîne = cible.remplacer (it1, it2, remplacement);
couter << result << endl;
retour 0;

La sortie est:

Notre monde solaire a 24 heures par jour.

Le dernier élément de la gamme, pointé par le deuxième itérateur, n'a pas participé au remplacement; C'était juste le délimiteur supérieur.

Deux itérateurs, IT1 et IT2, ont été utilisés. Chacun a été obtenu à partir de la fonction de début () de la classe de chaîne. La fonction de membre begin () renvoie un itérateur, qui pointe vers le premier élément de l'objet String. Pour faire en sorte que 1 indique «p» de «planète» à l'indice 4 de la chaîne cible, il a dû être augmenté de 4. Pour le faire 2 indiquer "juste après" planète "à l'index 10 de la chaîne cible, il a dû être augmenté de 10.

Conclusion

Il s'agit d'une sous-chaîne de la liste d'un objet de chaîne, instanciée à partir d'une classe de chaîne, qui est considérée pour le remplacement. Une sous-chaîne d'une chaîne déclarée comme tableau de boucles ou pointeur constant vers les caractères n'est pas considérée pour le remplacement. La chaîne de remplacement est une autre chaîne indépendante. La chaîne entière littérale de la chaîne de remplacement peut effectuer le remplacement, ou une partie de celle-ci peut toujours faire le remplacement. La classe C ++ 20 String possède 14 fonctions surchargées de membre pour le remplacement, dont 8 ont été expliquées ci-dessus.