Maison > Article > développement back-end > 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 -
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 :
\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 -
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)
#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; }
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,
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!