Menggunakan std::string's rfend Overloads untuk Memeriksa Awalan dan Menukar Subrentetan kepada Int
Untuk menentukan sama ada C std::string bermula dengan rentetan tertentu dan menukar subrentetan kepada integer, anda boleh memanfaatkan fungsi rfind terlampau beban.
Menyemak Awalan Rentetan
Gunakan lebihan rfind yang menerima carian parameter kedudukan (pos). Menetapkan parameter ini kepada sifar mengehadkan carian pada permulaan rentetan:
<code class="cpp">std::string s = "tititoto"; if (s.rfind("titi", 0) == 0) { // The string s starts with the "titi" prefix. }</code>
Menukar Subrentetan kepada Int
Untuk mengekstrak subrentetan selepas awalan yang diketahui dan menukar kepada integer, anda boleh menggunakan gabungan rfind dan substr:
<code class="cpp">std::string arg = "--foo=98"; size_t pos = arg.rfind("--foo="); if (pos != std::string::npos) { std::string fooValue = arg.substr(pos + len("--foo=")); int value = std::stoi(fooValue); }</code>
Dalam contoh ini, jika arg ialah "--foo=98", nilai pembolehubah akan diberikan nilai integer 98.
Kelebihan STL
Pendekatan ini mengelakkan keperluan untuk perpustakaan luaran seperti Boost. Ia menggunakan manipulasi rentetan standard yang disediakan oleh STL, yang mudah untuk dilaksanakan dan cekap.
Pemudahan C 20
Dalam C 20 dan kemudian, std:: kelas string dan std::string_view memperkenalkan kaedah starts_with, yang menjadikan penyemakan awalan lebih mudah:
<code class="cpp">std::string s = "tititoto"; if (s.starts_with("titi")) { // The string s starts with the "titi" prefix. }</code>
Atas ialah kandungan terperinci Bagaimanakah rfind std::string boleh digunakan untuk menyemak awalan dan menukar subrentetan kepada integer?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!