Bagaimanakah rfind std::string boleh digunakan untuk menyemak awalan dan menukar subrentetan kepada integer?

Linda Hamilton
Lepaskan: 2024-11-01 19:41:30
asal
576 orang telah melayarinya

How can std::string's rfind be used to check for a prefix and convert a substring to an integer?

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!