Program C++ untuk menyemak sama ada rentetan ialah nombor

WBOY
Lepaskan: 2023-08-27 12:53:12
ke hadapan
2622 orang telah melayarinya

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.

Periksa sama ada rentetan ialah nombor

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 -

Algoritma

  • Baca rentetan s sebagai input
  • Untuk setiap aksara c dalam rentetan s, lakukan perkara berikut
    • Jika c ialah bukan nombor, maka
      • kesilapan pemulangan
    • Tamat jika
  • Tamat
  • kembali benar

Contoh

#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;
}
Salin selepas log masuk

Output

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
Salin selepas log masuk

Penyelesaian ini menyemak sama ada rentetan yang diberikan ialah nombor tetapi tidak kembali benar apabila input negatif. Untuk nombor negatif, semakan khas diperlukan.

Periksa sama ada rentetan negatif atau positif

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 -

Algoritma

  • Baca rentetan s sebagai input
  • Jika aksara pertama s ialah '-' dan aksara seterusnya ialah nombor, maka
    • st = 1
  • Jika tidak
    • st=0
  • Jika ia berakhir
  • Untuk setiap aksara c dalam rentetan s bermula pada indeks st, lakukan perkara berikut
    • Jika c ialah bukan nombor, maka
      • kesilapan pemulangan
    • Jika ia berakhir
  • Tamat
  • kembali benar

Contoh

#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;
}
Salin selepas log masuk

Output

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
Salin selepas log masuk

Kesimpulan

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!

Label berkaitan:
sumber:tutorialspoint.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan