C 判斷字串是否是整數或浮點數

2021-10-20 22:47:29 字數 1377 閱讀 4255

在實際寫**過程中,我們經常需要知道一串字串是否為整數或是浮點數,當然,若是用c++自帶的stream等,當然可以非常方便的判斷,但效率並不高。因此,我們需要編寫出對應的函式,用於高效地直接判斷一串字串是否為整數或者是浮點數(符合c++格式的)。

整數的格式是 「符號(可以沒有)+整數」

因而,我們除了對開頭進行特殊化判斷,其他地方只需要考察是否是數字即可

於是我們可以給出以下**:

//判斷字串是否為整數(僅判斷格式,不考慮範圍)

bool

isint

(const

char

* str)

break

;default

:return

false;}

}if(!isnum)

return

true

;}

在c++中,浮點數的格式為 「符號+小數+e/e+整數」

其中除了中間的小數都是必須的之外,符號和後兩項都是可以沒有的

並且後兩項必須同時存在或不存在

而對於中間的小數,小數點可以在任意位置,但必須有數字

根據這個思路我們可以得到以下**:

//判斷字串是否為浮點數(僅判斷格式,不考慮範圍)

bool

isfloat

(const

char

* str)

else

break

;case

'+':

case

'-':

if(index !=0)

break

;case

'e':

case

'e':

if(ise ||

!numbefore)

else

break

;case

'.':

if(ispoint)

else

break

;default

:return

false;}

}if(!numbefore)

else

if(ise &&

!numbehind)

return

true

;}

我們再加上以下這段**

#include

using

namespace std;

intmain()

return0;

}

測試可得:

整數(浮點數)轉字串

在實際專案中,我們不可避免的遇到需要將整數 浮點數 轉換為字串輸出 儲存為檔案或者顯示列印 這是乙個很常見的演算法,標準c庫甚至提供了諸如itoa,ltoa,之類的函式供大家呼叫。但是,在一些特殊場合,比如對功耗要求比較苛刻的場合,則對轉換速度提出了要求。在微控制器應用中,很多mcu沒有除法器,和除...

Python 字串 整數 浮點數

幾個函式 str 將乙個整數或者浮點數變成字串 int 將乙個浮點數或乙個字串變成整數 float 將乙個整數或者字串變成乙個浮點型資料 整數的運算永遠是精確的,而浮點數的運算可能會有四捨五入的誤差 len 可以獲取字串的個數,整數和浮點數沒有這函式 type 可以檢視乙個資料或者變數的型別 有有兩...

Python判斷字串是否為數字 浮點數 字母

在python中處理字串的函式比較豐富,有時需要把字串轉化為整形 浮點型等 轉換過程中,發現有時會報錯,比如字串 12 76 轉換為整形,直接轉換int 12 76 會報無法轉換的錯誤的,因為 無法轉換為整形 所以在轉換前,需要先進行判斷該字串的型別。這個直接呼叫python的庫就可以了哈,假設st...