Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mengesahkan jika String atau aksara* Hanya Mengandungi Digit dalam C ?

Bagaimanakah Saya Boleh Mengesahkan jika String atau aksara* Hanya Mengandungi Digit dalam C ?

Patricia Arquette
Lepaskan: 2024-11-03 04:18:30
asal
792 orang telah melayarinya

How Can I Verify if a String or char* Contains Only Digits in C  ?

Menyemak Rentetan Digit Sahaja dalam C

Menentukan sama ada rentetan atau aksara* mengandungi digit sahaja adalah tugas biasa dalam pengaturcaraan. Artikel ini meneroka dua pendekatan yang cekap:

1. Menggunakan find_first_not_of

Kaedah ini berulang melalui rentetan, mencari aksara bukan digit pertama. Jika tiada yang ditemui (find_first_not_of("0123456789") mengembalikan std::string::npos), rentetan itu dianggap digit sahaja:

<code class="cpp">bool is_digits(const std::string &amp;str)
{
    return str.find_first_not_of("0123456789") == std::string::npos;
}</code>
Salin selepas log masuk

2. Menggunakan std::all_of (C 11 dan seterusnya)

Kaedah ini menggunakan predikat untuk menyemak setiap aksara rentetan. Dalam kes ini, predikatnya ialah ::isdigit, yang mengembalikan benar untuk aksara digit:

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

Adakah Fungsi Digunakan pada Kedua-dua Rentetan dan aksara*?

Ya, fungsi ini boleh digunakan untuk kedua-dua std::string dan char* dengan pengubahsuaian kecil. Untuk char*, pembina std::string boleh digunakan untuk menukar char* kepada std::string:

<code class="cpp">bool is_digits(const char *str)
{
    std::string str_copy(str);
    return is_digits(str_copy);
}</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesahkan jika String atau aksara* Hanya Mengandungi Digit dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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