Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Program C++ untuk menyemak sama ada rentetan ialah nombor

Program C++ untuk menyemak sama ada rentetan ialah nombor

WBOY
WBOYke hadapan
2023-08-27 12:53:122615semak imbas

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;
}

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

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;
}

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

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!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam