Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menyemak Kandungan Aksara Berangka dalam Rentetan C dan Pembolehubah aksara*?

Bagaimana untuk Menyemak Kandungan Aksara Berangka dalam Rentetan C dan Pembolehubah aksara*?

Barbara Streisand
Barbara Streisandasal
2024-11-03 03:04:29957semak imbas

How to Check for Numeric Character Content in C   Strings and char* Variables?

Menyemak Kandungan Aksara Berangka dalam Rentetan C dan Pembolehubah aksara*

Apabila bekerja dengan rentetan dalam C , selalunya perlu untuk menentukan sama ada jujukan aksara yang diberikan hanya mengandungi digit berangka. Ini boleh dicapai menggunakan pelbagai kaedah, masing-masing mempunyai kelebihan dan kelemahannya sendiri.

Untuk objek std::string, satu pendekatan ialah menggunakan fungsi std::find_first_not_of(). Fungsi ini mencari aksara pertama dalam rentetan yang tidak sepadan dengan mana-mana aksara yang dinyatakan dalam inputnya. Dengan menghantar rentetan yang mengandungi hanya aksara angka (cth., "0123456789"), kita boleh menentukan sama ada rentetan input mengandungi sebarang aksara bukan angka.

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

Sebagai alternatif, untuk kedua-dua std:: rentetan dan char* pembolehubah, kita boleh menggunakan fungsi std::all_of(). Fungsi ini mengambil julat elemen dan predikat (fungsi yang mengembalikan nilai boolean untuk setiap elemen). Dengan menggunakan predikat ::isdigit(), yang mengembalikan benar untuk aksara angka, kami boleh mengesahkan sama ada semua aksara dalam jujukan memenuhi syarat ini.

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

Kaedah ini menyediakan cara yang cekap untuk menyemak kandungan aksara angka dalam kedua-dua pembolehubah std::string dan char*. Pilihan pendekatan bergantung pada keperluan dan pilihan khusus pembangun.

Atas ialah kandungan terperinci Bagaimana untuk Menyemak Kandungan Aksara Berangka dalam Rentetan C dan Pembolehubah aksara*?. 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