Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menentukan sama ada C String atau char* Hanya Mengandungi Digit?
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:
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>
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>
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!