首頁 >後端開發 >C++ >C++程式檢查字串是否為數字

C++程式檢查字串是否為數字

WBOY
WBOY轉載
2023-08-27 12:53:122645瀏覽

C++程式檢查字串是否為數字

在解決邏輯程式設計困難時使用字串或字元非常有幫助。字串中的字元是 1 位元組資料類型,可以儲存 ASCII 值中的符號。字串是字元的集合。這些符號可以是特殊字元、數字系統中的數字或英文字母表中的字母。本文將教你如何使用C 判斷一個字元是否為數字字元。

檢查字串是否為數字

要檢查給定的字串是否為數字,我們需要檢查其中的每個字元是否為數字。如果其中任何一個字符是非數字字符,則該字串是非數字的,否則它是數字的。演算法如下所示 -

演算法

  • 讀取字串 s 作為輸入
  • 對於字串 s 中的每個字元 c,執行以下操作
    • 如果 c 是非數字,則
      • 回傳錯誤
    • 結束如果
  • 結束
  • 返回真

範例

#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

這個解決方案可以檢查給定的字串是否為數字,但當輸入為負數時不會回傳true。對於負數,需要進行特殊檢查。

檢查字串是否為負數或正數

檢查給定的字串是否是數字,我們只需要檢查每個字元是否是數字。但對於負數,第一個字元必須是“-”符號。所以先檢查第一個字元是否是負數,然後檢查下一個字元是否是數字,如果是,則檢查剩下的字元是否是數字。演算法如下所示 -

演算法

  • 讀取字串 s 作為輸入
  • 如果s的第一個字元是'-'且下一個字元是數字,則
    • st = 1
  • 否則
    • st=0
  • 如果結束
  • 對於字串 s 中從索引 st 開始的每個字元 c,執行以下操作
    • 如果 c 是非數字,則
      • 回傳錯誤
    • 如果結束
  • 結束
  • 返回真

範例

#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

結論

檢查給定字串是否是數字,我們需要檢查它的每個字元。當所有字元都是數字時,則字串是數字。在本文中,我們也使用邏輯來檢查負數。當第一個字元是負號時,然後檢查下一個字元是否是數字。如果是,則檢查其餘部分。程式可以擴展以檢查浮點數。現在它只適用於正整數和負整數。

以上是C++程式檢查字串是否為數字的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除