Heim > Backend-Entwicklung > C++ > C++-Programm, das reguläre Ausdrücke verwendet, um den ersten Buchstaben jedes Wortes auszugeben

C++-Programm, das reguläre Ausdrücke verwendet, um den ersten Buchstaben jedes Wortes auszugeben

王林
Freigeben: 2023-08-26 21:33:17
nach vorne
1186 Leute haben es durchsucht

C++-Programm, das reguläre Ausdrücke verwendet, um den ersten Buchstaben jedes Wortes auszugeben

Ein nützliches Werkzeug für String-Operationen ist Regex. Dieses kann in praktisch allen High-Level-Operationen gefunden werden Aktuelle Programmiersprachen, einschließlich C++. Reguläre Ausdrücke (Regex) werden verwendet als Universelles Suchmuster. Zum Beispiel durch den Aufbau einer einfachen Zeichenfolge Mit sogenannten regulären Ausdrücken können wir mindestens eine Logik zur Passwortüberprüfung implementieren Ein Großbuchstabe, ein Kleinbuchstabe, eine Zahl, ein Sonderzeichen und die Gesamtlänge beträgt mindestens 8 Zeichen.

In diesem Tutorial schauen wir uns an, wie man mit C++ nur die Anfangsbuchstaben der enthaltenen Wörter anzeigt innerhalb der angegebenen Zeichenfolge. Hier sehen wir uns einen Satz an, der Leerzeichen zur Trennung von Wörtern verwendet Unabhängig davon, ob es sich um Groß- oder Kleinbuchstaben handelt, werden sie vom Computer gelesen Teilen Sie die Zeichenfolge mithilfe eines regulären Ausdrucks auf und geben Sie das erste Zeichen jedes Worts zurück.

Um reguläre Ausdrücke zu verwenden, müssen wir die Regex-Bibliothek mithilfe des „regex“-Headers importieren Bei Verwendung regulärer Ausdrücke benötigen wir die folgende Syntax -

Syntax (reguläres Ausdrucksobjekt erstellen)

regex obj_name( <regular expression> )
Nach dem Login kopieren

Nachdem wir Regex definiert haben, können wir sie auf verschiedene Arten verwenden. Wir werden unseren beabsichtigten Ansatz sehen unten. Um nun das erste Zeichen des Wortes zu lesen, sieht die Syntax des regulären Ausdrucks wie folgt aus Der folgende Inhalt ist:

Grammatik (lesen Sie das erste Zeichen des Wortes)

\b[a-zA-Z]
Nach dem Login kopieren

Hier bedeutet „b“ den Wortanfang. [a-zA-Z] steht für Groß- oder Kleinbuchstaben Kleinbuchstaben im Bereich von „a“ bis „z“ oder „A“ bis „Z“ Und nur einer davon ist es Werfen wir nun einen Blick auf das Iteratorobjekt, das zum Lesen aller ausgewählten Übereinstimmungen verwendet wird -

Syntax (Iterator für reguläre Ausdrücke)

regex_token_iterator<string::iterator> iterator_name( <begin pointer of string>, <ending pointer of string>, <regular expression>, <submatch>);
Nach dem Login kopieren
In diesem Iterator sind die ersten beiden Parameter die Start- und Endzeiger. Der dritte Parameter ist das angegebene reguläre Ausdrucksobjekt, das wir haben Vorher erstellt. Der vierte Parameter ist die Unterübereinstimmung. Wenn die Unterübereinstimmung 0 ist, wird dies der Fall sein Gibt den Inhalt des übereinstimmenden Elements (zum Zeitpunkt der Übereinstimmung) zurück Submatch ist -1, es stellt dar, wo der Abgleich nicht erfolgt (Umkehrung des Submatches 0). Unterübereinstimmung ist -1, was bedeutet, dass die Übereinstimmung nicht abgeschlossen ist (das Gegenteil von Unterübereinstimmung 0).

Algorithmus

  • Nehmen Sie die Zeichenfolge s als Eingabe
  • regulären Ausdruck mit 'b[a-zA-Z]' definieren
  • Verwenden Sie einen Ausdruck, der zu s passt
  • Definieren Sie ein Iteratorobjekt für schreibgeschützte Übereinstimmungen
  • Für jedes Element im Iteratorobjekt Folgendes tun
    • Artikel anzeigen
  • Beende die Schleife

Beispiel

#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;
}
Nach dem Login kopieren

Ausgabe

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, 
Nach dem Login kopieren

Fazit

Ausdrücke, die in Zeichenfolgen verwendet werden, um gängige Muster abzugleichen Ausdrucksbibliotheken (reguläre Ausdrücke) sind in allen Hochsprachen einschließlich Java, Python verfügbar Javascript, Dart und C++. Es gibt viele Anwendungen. ein regulärer Ausdruck, liest das erste Zeichen jedes Wortes, das in diesem Artikel definiert wurde. Wir benötigen einen Iterator , das jedes passende Zeichen einzeln liest, um es zu durchlaufen.

Das obige ist der detaillierte Inhalt vonC++-Programm, das reguläre Ausdrücke verwendet, um den ersten Buchstaben jedes Wortes auszugeben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage