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
755 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!

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