Rumah >pembangunan bahagian belakang >C++ >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 -
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:
\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 -
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)
#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,
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!