Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Program C++ menggunakan ungkapan biasa untuk mencetak huruf pertama setiap perkataan

Program C++ menggunakan ungkapan biasa untuk mencetak huruf pertama setiap perkataan

王林
王林ke hadapan
2023-08-26 21:33:171157semak imbas

Program C++ menggunakan ungkapan biasa untuk mencetak huruf pertama setiap perkataan

Alat berguna untuk operasi rentetan ialah regex Ini boleh didapati dalam hampir semua peringkat tinggi Bahasa pengaturcaraan semasa, termasuk C++. Ungkapan biasa (Regex) digunakan sebagai Corak carian universal. Contohnya, dengan membina rentetan ringkas Dikenali sebagai ungkapan biasa, kami boleh melaksanakan logik pengesahan kata laluan menggunakan sekurang-kurangnya Satu huruf besar, satu huruf kecil, satu nombor, satu aksara khas, dan jumlah panjang sekurang-kurangnya 8 aksara.

Dalam tutorial ini, kita akan melihat cara menggunakan C++ untuk memaparkan hanya huruf pertama perkataan yang disertakan dalam rentetan yang ditentukan. Di sini kita akan melihat ayat yang menggunakan ruang untuk memisahkan perkataan Sama ada aksara itu huruf besar atau kecil, komputer akan membacanya Pisahkan rentetan menggunakan ungkapan biasa dan kembalikan aksara pertama setiap perkataan.

Untuk menggunakan ungkapan biasa, kita perlu mengimport perpustakaan regex menggunakan pengepala 'regex' Kepada Menggunakan ungkapan biasa kita memerlukan sintaks berikut -

Syntax (buat objek ekspresi biasa)

regex obj_name( <regular expression> )

Selepas mentakrifkan regex, kami boleh menggunakannya dalam pelbagai cara Kami akan melihat pendekatan yang kami maksudkan di bawah. Sekarang untuk membaca aksara pertama daripada perkataan itu, sintaks ungkapan biasa akan menjadi seperti ini Kandungan berikut ialah:

Tatabahasa (baca aksara pertama perkataan)

\b[a-zA-Z]

Di sini, 'b' bermaksud permulaan perkataan. [a-zA-Z] mewakili huruf besar atau huruf kecil huruf kecil yang berada dalam julat 'a' hingga 'z' atau 'A' hingga 'Z' dan hanya satu daripadanya diambil. Sekarang mari kita lihat objek iterator yang digunakan untuk membaca semua padanan yang dipilih -

Syntax (Pengulang Ungkapan Biasa)

regex_token_iterator<string::iterator> iterator_name( <begin pointer of string>, <ending pointer of string>, <regular expression>, <submatch>);
Dalam iterator ini, dua parameter pertama ialah penunjuk permulaan dan penamat. objek rentetan Parameter ketiga ialah objek ungkapan biasa yang kita ada Dicipta sebelum ini. Parameter keempat ialah subpadanan. Apabila subpadanan adalah 0, ia akan Mengembalikan kandungan daripada elemen yang dipadankan (pada masa perlawanan), apabila subpadanan ialah -1, ia mewakili tempat padanan tidak dilakukan (terbalikan subpadanan 0). submatch ialah -1, menunjukkan bahawa perlawanan tidak selesai (bertentangan dengan submatch 0)

Algoritma

  • Ambil rentetan s sebagai input
  • takrif ungkapan biasa dengan 'b[a-zA-Z]'
  • Gunakan ungkapan untuk memadankan s
  • Tentukan objek lelaran untuk membaca padanan sahaja
  • untuk setiap item dalam objek iterator, lakukan
    • Tunjukkan barang
  • Tamatkan gelung

Contoh

#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;
}

Output

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, 

Kesimpulan

Ungkapan yang digunakan dalam rentetan untuk memadankan corak biasa Pustaka ekspresi (ungkapan biasa) tersedia dalam semua bahasa peringkat tinggi termasuk Java, Python Javascript, Dart dan C++. Ia mempunyai banyak aplikasi. ungkapan biasa, membaca aksara pertama setiap perkataan telah ditakrifkan dalam artikel ini , yang membaca setiap aksara yang sepadan satu demi satu untuk melingkarkannya.

Atas ialah kandungan terperinci Program C++ menggunakan ungkapan biasa untuk mencetak huruf pertama setiap perkataan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam