在 C++ 中確定字符串是否為數字

Google Translate Icon

這篇文章將討論如何確定 C++ 中的字符串是否為數字。解決方案應檢查字符串是否包含數字序列。

1. 使用循環

一個簡單的解決方案是遍歷字符串,直到遇到非數字字符。如果所有字符都是數字,則字符串是數字。此解決方案不適用於負數或浮點數。

下載  運行代碼

2.使用 std::find_if

我們也可以使用標準算法 std::find_if 來自 <algorithm> header,它接受一個謂詞來查找指定範圍內的元素。可以如下使用它來查找第一個非數字字符的位置。如果字符串中的所有字符都是數字,則字符串必須是數字。此解決方案僅適用於正整數。

下載  運行代碼

3.使用 string::find_first_not_of

string::find_first_not_of 函數在字符串中搜索與任何指定字符都不匹配的第一個字符。可以如下使用它來確定字符串是否為數字。

下載  運行代碼

4.使用 std::all_of

從 C++11 開始,我們可以使用 std::all_of 返回的函數 true 如果指定的謂詞適用於指定範圍內的所有元素。可以如下使用它來確定字符串是否為數字。

下載  運行代碼

5.使用 strtol() 功能

或者,我們可以使用 strtol() C 標準庫函數,將 C 字符串 str 解析為指定基數中的整數,如果無法進行轉換,則返回零值。它可以用來解析一個 std::string 並判斷字符串是否為數字,如下所示。

下載  運行代碼

6. 使用升壓

如果您已經在使用 boost 庫,則可以使用解析 C++ 字符串 boost::lexical_cast<>() 功能。它拋出一個 boost::bad_lexical_cast 如果無法進行轉換,則例外。這也適用於負整數和浮點數。這是完整的代碼:

下載代碼

7. 使用正則表達式

最後,我們可以使用正則表達式來確定字符串是否為數字。以下解決方案目前適用於正整數和負整數。它可以很容易地擴展到處理浮點數。

下載  運行代碼

這就是確定字符串在 C++ 中是否為數字的全部內容。

評價這篇文章

平均評分 4.79/5。票數: 19

暫時沒有票!成為第一個給這篇文章評分的人。

很抱歉這篇文章對您沒有用處!

告訴我們如何改進這篇文章?




謝謝閱讀。

請使用我們的 在線編譯器 使用 C、C++、Java、Python、JavaScript、C#、PHP 和許多更流行的編程語言在評論中發布代碼。

像我們?將我們推薦給您的朋友,幫助我們成長。快樂編碼 :)



訂閱
通知
guest
0 註釋
內聯反饋
查看所有評論
請勿點擊此鏈接,否則您將被禁止訪問該網站!