首頁 >後端開發 >C++ >如何檢查 C 字串是否代表整數?

如何檢查 C 字串是否代表整數?

Susan Sarandon
Susan Sarandon原創
2024-11-05 21:32:02460瀏覽

How to Check If a C   String Represents an Integer?

檢查C 字串是否為整數

在某些情況下,例如處理使用者輸入時,可能需要區分錶示整數的字符串和不表示整數的字串。幸運的是,有多種方法可以在 C 中實現此任務。

一種方法是利用 C 函數 strtol,它將整數的字串表示形式轉換為整數值。要使用 strtol,您可以編寫一個簡單的函數來封裝轉換過程:

<code class="cpp">inline bool isInteger(const std::string &s) {
  if (s.empty() || ((!isdigit(s[0])) && (s[0] != '-') && (s[0] != '+'))) return false;

  char *p;
  strtol(s.c_str(), &p, 10);

  return (*p == 0);
}</code>
  • 概述:該函數檢查提供的字串 s 是否表示整數。
  • 空字串:它先檢查字串是否為空。
  • 前導符號:它還會檢查前導非數字字符,例如' ' 或'-',如果不存在則返回false(表示非整數) ).
  • strtol Conversion:此函數利用strtol 函數來執行轉換。如果 strtol 遇到非數字字符,它將將該字符的地址分配給指針 p。
  • 結果評估:如果 p 沒有指向字串的結尾(由' 字元),這表示 strtol 遇到了非數字字元。在這種情況下,函數傳回 false,表示 s 不是整數。

該函數提供了一種可靠的方法來確定給定字串是否可以解析為整數。透過將其合併到您的程式碼中,您可以適當地處理表示整數和非整數的字串。

以上是如何檢查 C 字串是否代表整數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn