Maison  >  Article  >  développement back-end  >  Supprimer les occurrences de tous les caractères de la chaîne à l'aide de STL

Supprimer les occurrences de tous les caractères de la chaîne à l'aide de STL

WBOY
WBOYavant
2023-08-28 17:49:071333parcourir

Supprimer les occurrences de tous les caractères de la chaîne à laide de STL

STL signifie essentiellement Standard Template Library, qui est une collection de codes pré-écrits fréquemment utilisés dans les structures de données et les algorithmes. Il a été développé par Ming Lee et Alexander Stepanov au début des années 1990.

Il se compose principalement de trois composants : conteneur, algorithme et itérateur. Les conteneurs sont des objets qui stockent et manipulent des données, telles que des listes, des vecteurs, des ensembles, des cartes et des piles. Les algorithmes sont des fonctions qui opèrent sur les données stockées dans des conteneurs, telles que la recherche, le tri et la manipulation de données. Les itérateurs sont des objets qui facilitent la navigation dans les éléments d'un conteneur.

STL est devenu un élément important de la programmation compétitive et fournit également un code efficace et robuste.

#include <iostream> 
#include <string> 

using namespace std; 
int main() { 
   string a = "Hello, world!"; 
   cout << a << endl; 
   return 0; 
} 

Sortie

Hello, world!

Algorithme

  • Déclarez une chaîne et des caractères à supprimer. Stockez-les ensuite dans des variables.

  • Parcourez chaque caractère de la chaîne.

  • Vérifiez si le caractère actuel correspond au caractère que vous souhaitez supprimer.

  • Répétez les deux processus ci-dessus jusqu'à ce que toutes les occurrences de caractères soient supprimées.

  • Imprimez la chaîne modifiée.

Méthode

  • Méthode 1 - Utilisez les fonctions Remove() et Eraser().

  • Méthode 2 - Utilisez les fonctions Remove_if() et Eraser().

  • Méthode 3 - Utilisez les fonctions find() et Eraser().

Il existe plusieurs façons de supprimer toutes les occurrences de caractères d'une chaîne à l'aide de STL. Vous trouverez ci-dessous quelques méthodes possibles -

Méthode 1 : utilisez les fonctions Remove() et Eraser()

L'algorithme

Remove() est défini dans le fichier d'en-tête. Il supprime la valeur de la plage, dans ce cas ce sera le caractère que vous souhaitez supprimer, et renvoie l'itérateur à la nouvelle fin de la séquence. 算法>

Cette fonction déplace uniquement les éléments vers la fin de la plage et fournit un itérateur pour la nouvelle fin, elle ne les supprime pas réellement du conteneur.

La fonction

Erase() en C++ STL est utilisée pour supprimer des éléments d'un conteneur. Il prend deux paramètres, selon le type de conteneur (vecteur ou chaîne).

La fonction

erase() supprime les caractères "count" de l'index de départ. Le premier paramètre est un index optionnel, égal à 0 par défaut. Si "count" n'est pas spécifié, tous les caractères du conteneur seront supprimés de l'index jusqu'à la fin de la chaîne.

Exemple

#include <iostream>
#include <string>
#include <algorithm>
 using namespace std;
int main() {
   string str = "hello world!";
   char ch = 'l';
   // Use remove() to remove all occurrences of the character.
   str.erase(remove(str.begin(), str.end(), ch), str.end());
   cout << str << endl;
   return 0;
}

Sortie

heo word!

Méthode 2 : utilisez les fonctions Remove_if() et Eraser()

'remove_if()' en C++ STL est similaire à la fonction remove(), mais elle ne supprime les caractères du conteneur que lorsque la condition spécifiée est remplie. La méthode

remove_if() supprime tous les éléments de la plage [first, last) si la condition p est remplie. Le prédicat unaire p est une fonction ou un objet fonction qui prend un seul argument d'un élément du conteneur et renvoie une valeur booléenne indiquant si l'élément doit être supprimé.

Exemple

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

int main() {
   string str = "hello world!";
   char ch = 'l';
   str.erase(remove_if(str.begin(), str.end(), [=](char c) { return c == ch; }), str.end());
   cout << str << endl;
   return 0;
}

Sortie

heo word!

Méthode 3 : Utilisation des boucles et de la fonction effacer()

Dans cette méthode, l'idée est d'utiliser une boucle pour parcourir la chaîne et supprimer chaque occurrence de caractères une par une.

Dans cette méthode, utilisez une boucle for pour parcourir toute la chaîne, en vérifiant chaque caractère individuellement pour voir s'il correspond au caractère qui doit être supprimé. S'il y a une correspondance, le caractère est supprimé de la chaîne ; sinon, il passe au suivant.

Exemple

#include <iostream>
#include <string>
using namespace std;
int main() {
   string str = "hello world!";
   char ch = 'o';
   // Use a loop to remove all occurrences of the character
   for (int i = 0; i < str.length(); ) {
      if (str[i] == ch) {
         str.erase(i, 1);
      } else {
         ++i;
      }
   }
   cout << str << endl;
   return 0;
}

Sortie

 hell wrld!

Conclusion

En résumé, la bibliothèque C++ STL fournit une procédure simple et rapide pour éliminer chaque instance d'un caractère dans une chaîne. Avec seulement quelques lignes de code, nous pouvons éliminer toutes les occurrences d'un caractère spécifique d'une chaîne à l'aide des fonctions Eraser(), Remove() et Remove_if() de STL.

L'utilisation de STL en C++ présente de nombreux avantages, notamment la facilité d'utilisation, l'efficacité et la réutilisation. Dans l’ensemble, il s’agit d’une bibliothèque puissante qui permet de générer du code fiable et efficace.

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer