Maison  >  Article  >  développement back-end  >  Programme C++ utilisant des expressions régulières pour imprimer la première lettre de chaque mot

Programme C++ utilisant des expressions régulières pour imprimer la première lettre de chaque mot

王林
王林avant
2023-08-26 21:33:171153parcourir

Programme C++ utilisant des expressions régulières pour imprimer la première lettre de chaque mot

Un outil utile pour les opérations sur les chaînes est l'expression régulière. Elle peut être trouvée dans pratiquement tous les éléments de haut niveau. Langages de programmation actuels, dont C++. Les expressions régulières (Regex) sont utilisées comme Modèle de recherche universel. Par exemple, en construisant une simple chaîne Connues sous le nom d'expressions régulières, nous pouvons implémenter une logique de vérification de mot de passe en utilisant au moins Une lettre majuscule, une lettre minuscule, un chiffre, un caractère spécial et la longueur totale est d'au moins 8 caractères.

Dans ce tutoriel, nous verrons comment utiliser C++ pour afficher uniquement les premières lettres des mots inclus dans la chaîne spécifiée. Ici, nous allons examiner une phrase qui utilise des espaces pour séparer les mots Que les caractères soient en majuscules ou en minuscules, l'ordinateur les lira Divisez la chaîne à l'aide d'une expression régulière et renvoyez le premier caractère de chaque mot.

Pour utiliser des expressions régulières, nous devons importer la bibliothèque regex en utilisant l'en-tête 'regex' To. En utilisant des expressions régulières, nous avons besoin de la syntaxe suivante -

Syntaxe (créer un objet d'expression régulière)

regex obj_name( <regular expression> )

Après avoir défini les regex, nous pouvons les utiliser de plusieurs manières. Nous verrons notre approche envisagée. ci-dessous. Maintenant, pour lire le premier caractère du mot, la syntaxe de l'expression régulière sera la suivante Le contenu suivant est :

Grammaire (lire le premier caractère d'un mot)

\b[a-zA-Z]

Ici, « b » signifie le début du mot. [a-zA-Z] représente des lettres majuscules ou minuscules lettres minuscules comprises entre « a » et « z » ou « A » et « Z » et une seule d’entre elles l’est. pris. Jetons maintenant un coup d'œil à l'objet itérateur utilisé pour lire toutes les correspondances sélectionnées -

Syntaxe (itérateur d'expression régulière)

regex_token_iterator<string::iterator> iterator_name( <begin pointer of string>, <ending pointer of string>, <regular expression>, <submatch>);
Dans cet itérateur, les deux premiers paramètres sont les pointeurs de début et de fin. objet chaîne. Le troisième paramètre est l'objet d'expression régulière donné que nous avons Créé auparavant. Le quatrième paramètre est la sous-correspondance. Lorsque la sous-correspondance est 0, ce sera Renvoie le contenu de l'élément correspondant (au moment de la correspondance), lorsque la sous-correspondance est -1, elle représente l'endroit où la correspondance n'est pas effectuée (l'inverse de la sous-correspondance 0). la sous-correspondance est -1, indiquant que la correspondance n'est pas terminée (à l'opposé de la sous-correspondance 0)

Algorithme

  • Prendre la chaîne s en entrée
  • définir une expression régulière avec 'b[a-zA-Z]'
  • Utilisez une expression correspondant à s
  • Définissez un objet itérateur pour lire uniquement les correspondances
  • pour chaque élément de l'objet itérateur, faites
    • Afficher les articles
  • Fin de la boucle

Exemple

#include <iostream>
#include <regex>
using namespace std;
string solve( string s){
   string ret = "";
   regex e("\b[a-zA-Z]");
   regex_token_iterator<string::iterator> i(s.begin(), s.end(), e, 0);
   regex_token_iterator<string::iterator> end;
   while (i != end) {
      ret += (*i++);
      ret += ", ";
   }
   return ret;
}
int main(){
   string s = "A string to read only the first letter of words";
   cout << "Given String: " << s << endl;
   cout << "The first letter of each word: " << solve( s ) << endl;
   s = "Central Pollution Control Board";
   cout << "Given String: " << s << endl;
   cout << "The first letter of each word: " << solve( s ) << endl;
}

Sortie

Given String: A string to read only the first letter of words
The first letter of each word: A, s, t, r, o, t, f, l, o, w, 
Given String: Central Pollution Control Board
The first letter of each word: C, P, C, B, 

Conclusion

Expressions utilisées dans les chaînes pour correspondre à des modèles courants Les bibliothèques d'expressions (expressions régulières) sont disponibles dans tous les langages de haut niveau dont Java, Python Javascript, Dart et C++. Ses applications sont nombreuses. une expression régulière, lit que le premier caractère de chaque mot a été défini dans cet article. Nous avons besoin d'un itérateur. , qui lit chaque caractère correspondant un par un afin de les parcourir en boucle.

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