確定字串是否為C 中的數字
處理基於文字的資料時,可能需要確定給定的值是否為數字字串代表一個數值。在 C 中,有多種方法可以解決此問題:
一種方法是檢查字串是否包含任何非數字字元。如果是這樣,則該字串不是數字。以下是一個遵循這種方法的函數:
bool is_number(const std::string& s) { std::string::const_iterator it = s.begin(); while (it != s.end() && std::isdigit(*it)) ++it; return !s.empty() && it == s.end(); }
或者,C 11 提供了更簡潔的語法:
bool is_number(const std::string& s) { return !s.empty() && std::find_if(s.begin(), s.end(), [](unsigned char c) { return !std::isdigit(c); }) == s.end(); }
這些函數都驗證字串只包含數字。但是,它們僅適用於正整數。將它們擴展為支援負整數或分數將需要更強大的基於庫的解決方案。透過檢查非數字字元或使用 C 11,您可以有效地確定字串是否代表數值,滿足您的特定需求。
以上是如何有效率判斷C字串是否代表數字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!