Bagaimana untuk Menentukan sama ada C String atau char* Hanya Mengandungi Digit?

Linda Hamilton
Lepaskan: 2024-11-03 00:56:29
asal
660 orang telah melayarinya

How to Determine if a C   String or char* Contains Only Digits?

Cara Mengesahkan jika Rentetan C atau aksara* Terdiri Secara Eksklusif daripada Digit

Soalan:

Dalam C , adakah mungkin untuk menentukan sama ada rentetan atau aksara* yang diberikan hanya mengandungi aksara angka? Jika ya, bagaimanakah kita mencari aksara bukan digit pertama dan adakah kaedah yang serupa digunakan untuk kedua-dua jenis?

Jawapan:

Ya, terdapat pelbagai teknik untuk menilai sama ada rentetan atau aksara* terdiri daripada digit semata-mata. Berikut ialah dua pendekatan yang berpotensi:

  1. find_first_not_of() Kaedah:

Kaedah ini menyemak kejadian pertama aksara bukan digit dalam input. Jika hasilnya ialah std::string::npos, ini menunjukkan bahawa semua aksara ialah digit.

<code class="cpp">bool is_digits(const std::string &str) {
    return str.find_first_not_of("0123456789") == std::string::npos;
}</code>
Salin selepas log masuk
  1. std::all_of() Kaedah (C 11 dan ke atas):

Kaedah ini menggunakan algoritma std::all_of untuk menguji sama ada setiap aksara dalam input memenuhi keadaan tertentu, dalam kes ini, sama ada digit.

<code class="cpp">bool is_digits(const std::string &str) {
    return std::all_of(str.begin(), str.end(), ::isdigit);
}</code>
Salin selepas log masuk

Aplikasi untuk Kedua-dua Jenis:

Kaedah yang dibincangkan di atas boleh digunakan dengan kedua-dua std: :rentetan dan char jenis. Walau bagaimanapun, adalah penting untuk memastikan penukaran atau permulaan yang betul apabila bekerja dengan char untuk mengekalkan konsistensi dalam perwakilan data dan mengelakkan tingkah laku yang tidak diingini.

Atas ialah kandungan terperinci Bagaimana untuk Menentukan sama ada C String atau char* Hanya Mengandungi Digit?. 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