1. 程式人生 > >C語言如何檢查一個字串是否全數字?

C語言如何檢查一個字串是否全數字?

正如題目所問?在C語言中如何判斷一個字串是否是全數字的?

先貼出一段程式碼

/**
 *  @brief Function isdigitstr() 判斷傳入字串是否全數字
 *  @param[in]   char *str     字串
 *  @retval  1: 全字串,0:非全字串     
 *  @pre  
 *  @post 
 */
static int isdigitstr(char *str)
{
return (strspn(str, "0123456789")==strlen(str));
}

可以用strspn與strlen組合的方式判斷一個字串是否全數字。strspn返回的是str中有多少字元與引數"0123456789"中相同,而全數字時正好與strlen相同,

所以此組合可以判斷一個字串是否為全數字的。

strspn定義:

表頭檔案
1 #include <string.h>
定義函式:
1 size_t strspn (const char *s,const char * accept);
函式說明 strspn()從引數s 字串的開頭計算連續的字元,而這些字元都完全是accept 所指字串中的字元。簡單的說,若strspn()返回的數值為n,則代表字串s 開頭連續有n 個字元都是屬於字串accept內的字元。 返回值 返回字串s開頭連續包含字串accept內的字元數目