簡體   English   中英

c檢查整數

[英]c check integer

我正在尋找一個函數來檢查c中的數字,isdigit僅檢查0-9嗎? 10-99999怎么樣?

我有一個整數,例如22,我要檢查是否有效?

有任何想法嗎? 謝謝〜

isdigit al用於檢查字符。 10-99999不再是單個字符。 如果要檢查字符串“ 8382820”是否為數字,則(至少)有3個選項:

  • 循環遍歷字符串,並在每個字符上運行isdigit (如果其中一個不是,則失敗)
  • 使用正則表達式( "^[0-9]+$"應該可以解決問題,但在C語言中不太實用)
  • 使用strtol並檢查結束指針是否為空終止符。

這是有關如何使用strtol的想法:

char* myString = "9823872";
char* endPtr = NULL;
long int myInt = strtol(myString, &endPtr, 10);

if(endPtr && *endPtr != '\0')
{
    fprintf(stderr, "Sorry, that's not a valid number\n");
    exit(1);
}

可能還有其他涉及scanf或atoi的聰明答案,但我現在就將其保留下來。

isdigit()函數一次檢查一個字符。 如果要檢查一個字符串中的多個字符,請遍歷字符串中的字符,然后對每個字符調用isdigit()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM