Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Memeriksa Jika Rentetan C Mewakili Integer?

Bagaimana untuk Memeriksa Jika Rentetan C Mewakili Integer?

Susan Sarandon
Susan Sarandonasal
2024-11-05 21:32:02399semak imbas

How to Check If a C   String Represents an Integer?

Menyemak Jika Rentetan C ialah Integer

Dalam situasi tertentu, seperti semasa memproses input pengguna, mungkin perlu untuk membezakan antara rentetan yang mewakili integer dan yang tidak. Nasib baik, terdapat beberapa cara untuk mencapai tugas ini dalam C .

Satu pendekatan ialah memanfaatkan fungsi C strtol, yang menukar perwakilan rentetan integer kepada nilai integer. Untuk menggunakan strtol, anda boleh menulis fungsi ringkas yang merangkumi proses penukaran:

<code class="cpp">inline bool isInteger(const std::string &s) {
  if (s.empty() || ((!isdigit(s[0])) && (s[0] != '-') && (s[0] != '+'))) return false;

  char *p;
  strtol(s.c_str(), &p, 10);

  return (*p == 0);
}</code>
  • Ikhtisar: Fungsi menyemak sama ada rentetan s yang disediakan mewakili integer.
  • Rentetan Kosong: Ia mula-mula menyemak sama ada rentetan itu kosong.
  • Simbol Utama: Ia juga menyemak aksara bukan digit terkemuka, seperti ' ' atau '-', dan mengembalikan palsu jika ia tidak hadir (menunjukkan bukan integer).
  • Penukaran strtol: Fungsi ini menggunakan fungsi strtol untuk melaksanakan penukaran. Jika strtol menemui aksara bukan digit, ia memberikan alamat aksara itu kepada penuding p.
  • Penilaian Keputusan: Jika p tidak menunjuk ke hujung rentetan (diwakili oleh watak ''), ia bermakna strtol menemui watak bukan digit. Dalam kes ini, fungsi mengembalikan palsu, menunjukkan bahawa s bukan integer.

Fungsi ini menyediakan cara yang boleh dipercayai untuk menentukan sama ada rentetan yang diberikan boleh dihuraikan sebagai integer. Dengan memasukkannya ke dalam kod anda, anda boleh mengendalikan rentetan yang mewakili integer dan bukan integer dengan sewajarnya.

Atas ialah kandungan terperinci Bagaimana untuk Memeriksa Jika Rentetan C Mewakili 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