Rumah > Artikel > pembangunan bahagian belakang > Program C++ untuk menyemak sama ada rentetan ialah nombor
Menggunakan rentetan atau aksara sangat membantu apabila menyelesaikan kesukaran pengaturcaraan logik. Aksara dalam rentetan ialah jenis data 1-bait yang boleh menyimpan simbol dalam nilai ASCII. Rentetan ialah koleksi aksara. Simbol ini boleh menjadi aksara khas, nombor daripada sistem nombor atau huruf daripada abjad Inggeris. Artikel ini akan mengajar anda cara menggunakan C++ untuk menentukan sama ada aksara ialah aksara angka.
Untuk menyemak sama ada rentetan yang diberikan ialah nombor, kita perlu menyemak sama ada setiap aksara di dalamnya ialah nombor. Jika mana-mana aksara ialah aksara bukan angka, rentetan itu bukan angka, jika tidak ia adalah angka. Algoritmanya adalah seperti berikut -
#include <iostream> #include <ctype.h> using namespace std; string solve( string s ) { for( int i = 0; i < s.length(); i++ ) { if( !isdigit( s[i] )) { return "False"; } } return "True"; } int main() { cout << "Is "589" a numeric string? : " << solve( "589" ) << endl; cout << "Is "69a" a numeric string? : " << solve( "69a" ) << endl; cout << "Is "2979624" a numeric string? : " << solve( "2979624" ) << endl; cout << "Is "25\%4A" a numeric string? : " << solve( "25\%4A" ) << endl; cout << "Is "889" a numeric string? : " << solve( "889" ) << endl; }
Is "589" a numeric string? : True Is "69a" a numeric string? : False Is "2979624" a numeric string? : True Is "25%4A" a numeric string? : False Is "889" a numeric string? : True
Penyelesaian ini menyemak sama ada rentetan yang diberikan ialah nombor tetapi tidak kembali benar apabila input negatif. Untuk nombor negatif, semakan khas diperlukan.
Untuk menyemak sama ada rentetan yang diberikan ialah nombor, kita hanya perlu menyemak sama ada setiap aksara ialah nombor. Tetapi untuk nombor negatif, aksara pertama mestilah tanda "-". Jadi semak dahulu sama ada aksara pertama adalah negatif, kemudian semak sama ada aksara seterusnya ialah nombor, dan jika ya, semak sama ada aksara yang tinggal ialah nombor. Algoritmanya adalah seperti berikut -
#include <iostream> #include <ctype.h> using namespace std; string solve( string s ) { int start; if( s[0] == '-' && isdigit( s[1] ) ) { start = 1; } else { start = 0; } for( int i = start; i < s.length(); i++ ) { if( !isdigit( s[i] )) { return "False"; } } return "True"; } int main() { cout << "Is "687" a numeric string? : " << solve( "687" ) << endl; cout << "Is "256l" a numeric string? : " << solve( "256l" ) << endl; cout << "Is "-5845" a numeric string? : " << solve( "-5845" ) << endl; cout << "Is "-89A2" a numeric string? : " << solve( "-89A2" ) << endl; cout << "Is "-256" a numeric string? : " << solve( "-256" ) << endl; }
Is "687" a numeric string? : True Is "256l" a numeric string? : False Is "-5845" a numeric string? : True Is "-89A2" a numeric string? : False Is "-256" a numeric string? : True
Untuk menyemak sama ada rentetan yang diberikan ialah nombor, kita perlu menyemak setiap aksaranya. Rentetan ialah nombor apabila semua aksara ialah nombor. Dalam artikel ini, kami juga menggunakan logik untuk menyemak nombor negatif. Apabila aksara pertama ialah tanda negatif, maka semak sama ada aksara seterusnya ialah nombor. Jika ya, semak yang lain. Program ini boleh dilanjutkan untuk menyemak nombor titik terapung. Kini ia hanya berfungsi untuk integer positif dan negatif.
Atas ialah kandungan terperinci Program C++ untuk menyemak sama ada rentetan ialah nombor. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!