C語言判斷是否為整數,那麼只可能是判斷輸入的值,或者字串中的值,是否為整數。
因為一旦儲存在變數中,根據變數型別,要麼為整數,要麼為浮點數,是確定的。
一、判斷思路:
1、整數中,按十進位制計算,合法字元為0到9,另外在最初位置可以有符號,即+或者-。
2、對於輸入的值,可以先儲存到字串中,這樣轉換為判斷字串中是否為整數。
3、先判斷第一個字元是否為+或者-, 如果是,則從第二個開始判斷,否則從第一個開始判斷。
4、對每一個需要判斷的字元,判斷是否在"0"到"9"之間,如果是則合法,否則非法。
5、一旦出現非法字元,說明不是整數。如果所有字符合法,那麼是整數。
二、參考程式碼:
int is_int(char *s)//判斷s中是否為整數,如果是返回1,否則返回0.
{
char* p =s;//p指向s。
if(*p=="+"||*p=="-")//如果第一個字元為符號,則從第二個開始遍歷。
p++;
while(*p)//遍歷字串。
if(*p"9") return 0;//出現非法字元,返回0,表示不是整數。
p++;//判斷下一個字元。
}
return 1;//所有都是合法字元,返回1,表示為整數
int main()
char s[200];
gets(s);//讀取輸入,存到s中。
if(is_int(s))//判斷並輸出結果
printf("%s 是整數\n", s);
else
printf("%s 不是整數\n",s);
return 0;
C語言判斷是否為整數,那麼只可能是判斷輸入的值,或者字串中的值,是否為整數。
因為一旦儲存在變數中,根據變數型別,要麼為整數,要麼為浮點數,是確定的。
一、判斷思路:
1、整數中,按十進位制計算,合法字元為0到9,另外在最初位置可以有符號,即+或者-。
2、對於輸入的值,可以先儲存到字串中,這樣轉換為判斷字串中是否為整數。
3、先判斷第一個字元是否為+或者-, 如果是,則從第二個開始判斷,否則從第一個開始判斷。
4、對每一個需要判斷的字元,判斷是否在"0"到"9"之間,如果是則合法,否則非法。
5、一旦出現非法字元,說明不是整數。如果所有字符合法,那麼是整數。
二、參考程式碼:
int is_int(char *s)//判斷s中是否為整數,如果是返回1,否則返回0.
{
char* p =s;//p指向s。
if(*p=="+"||*p=="-")//如果第一個字元為符號,則從第二個開始遍歷。
p++;
while(*p)//遍歷字串。
{
if(*p"9") return 0;//出現非法字元,返回0,表示不是整數。
p++;//判斷下一個字元。
}
return 1;//所有都是合法字元,返回1,表示為整數
}
int main()
{
char s[200];
gets(s);//讀取輸入,存到s中。
if(is_int(s))//判斷並輸出結果
printf("%s 是整數\n", s);
else
printf("%s 不是整數\n",s);
return 0;
}