Menyemak Awalan dan Mengekstrak Subrentetan Numerik dalam C
Dalam Python, menyemak sama ada rentetan bermula dengan awalan tertentu dan menukar subrentetan kepada integer adalah tugas yang mudah. Walau bagaimanapun, dalam C , cara untuk mencapai kefungsian yang serupa mungkin tidak dapat dilihat dengan segera.
Untuk menentukan sama ada rentetan bermula dengan subrentetan tertentu, kita boleh menggunakan fungsi rfind dengan parameter pos ditetapkan kepada sifar. Ini memastikan carian terhad pada permulaan rentetan. Contohnya:
<code class="cpp">std::string str = "tititoto"; if (str.rfind("titi", 0) == 0) { // The string starts with "titi" }</code>
Dalam contoh di atas, pos ditetapkan kepada sifar, yang mengehadkan carian kepada awalan. Oleh itu, rfind mengembalikan 0 jika rentetan bermula dengan subrentetan yang ditentukan. Jika tidak, ia mengembalikan std::string::npos, menunjukkan kegagalan.
Dengan C 20 dan lebih baru, proses menjadi lebih mudah kerana pengenalan starts_with dalam std::string dan std::string_view.
<code class="cpp">std::string str = "tititoto"; if (str.starts_with("titi")) { // The string starts with "titi" }</code>
Untuk mengekstrak subrentetan angka daripada rentetan, kita boleh menggunakan std::stoi. Sebagai contoh, jika kita mempunyai rentetan seperti "--foo=98", kita boleh mengekstrak nilai berangka seperti berikut:
<code class="cpp">std::string arg = "--foo=98"; std::size_t pos = arg.find("--foo="); if (pos != std::string::npos) { std::string foo = arg.substr(pos + sizeof("--foo=") - 1); int foo_value = std::stoi(foo); }</code>
Dalam kes ini, kita menggunakan find untuk mencari kedudukan " --foo=" awalan. Jika ditemui, kami mengekstrak subrentetan menggunakan substr dan menukarnya kepada integer menggunakan std::stoi.
Teknik ini menyediakan penyelesaian yang cekap dan ringkas untuk bekerja dengan rentetan dalam C .
Atas ialah kandungan terperinci Bagaimanakah saya boleh menyemak awalan dan ekstrak subrentetan angka dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!