Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah rfind std::string boleh digunakan untuk menyemak awalan dan menukar subrentetan kepada integer?

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

Linda Hamilton
Linda Hamiltonasal
2024-11-01 19:41:30576semak imbas

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>

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!

Kenyataan:
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