可以使用代碼進(jìn)行判斷:
成都創(chuàng)新互聯(lián)堅(jiān)信:善待客戶,將會(huì)成為終身客戶。我們能堅(jiān)持多年,是因?yàn)槲覀円恢笨芍档眯刨?。我們從不忽悠初訪客戶,我們用心做好本職工作,不忘初心,方得始終。10余年網(wǎng)站建設(shè)經(jīng)驗(yàn)成都創(chuàng)新互聯(lián)是成都老牌網(wǎng)站營(yíng)銷服務(wù)商,為您提供成都做網(wǎng)站、成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、html5、網(wǎng)站制作、品牌網(wǎng)站制作、小程序設(shè)計(jì)服務(wù),給眾多知名企業(yè)提供過(guò)好品質(zhì)的建站服務(wù)。
#includestdio.h
intmain()
{
charc;
while(scanf("%c",c)!=EOF)
{
getchar();
if(c='0'c='9')
printf("%c是數(shù)字\n",c);
elseif(c='a'c='z'||c='A'c='Z')
printf("%c是字母\n",c);
elseprintf("%c是特殊字符\n",c);
}
return0;
}
擴(kuò)展資料
C語(yǔ)言判斷輸入是否是數(shù)字
intdigit;
printf("pleaseinputainteger\n");
intret=scanf("%d",digit);
if(0==ret)
{
printf("youshouldinputainteger\n");
system("pause");
return0;
}
由于數(shù)字的ascii碼值是連續(xù)的,所以可以通過(guò)與最小的數(shù)字'0'以及最大的數(shù)字'9'相比較,確定一個(gè)字符變量是否為數(shù)字。
比如
if(c='0' c='9') printf("%c 是數(shù)字\n",c);
else printf("%c 不是數(shù)字\n",c);
如果判斷要經(jīng)常使用,可以將該功能封裝為函數(shù):
int is_num(char c)
{
return (c='0' c='9');
}
或者宏定義:
#define is_num(c) (c='0' c='9')
先按字符串輸入,然后對(duì)字符串進(jìn)行檢查,判定是否符合條件,若符合條件,則轉(zhuǎn)為數(shù)值輸出。代碼如下:
#include?stdio.h
#include?string.h
#include?stdlib.h
int?chk_data(?char?*num?)
{
int?i;
for(?i=0;num[i];i++?)
{
if?(?num[i]?'9'||?num[i]?'0'?)?//只要有非數(shù)字,就返回錯(cuò)誤
return?0;
}
if?(?i4?)?//都是數(shù)字,但長(zhǎng)度超過(guò)4位,返回錯(cuò)誤
return?0;
return?1;
}
void?main()
{
char?str[100];
while?(?1?)
{
printf("input?:");
scanf("%s",?str?);
if?(?chk_data(?str?)==0?)
{
printf("輸入數(shù)據(jù)錯(cuò)誤,請(qǐng)重新輸入!\n");
}
else
break;
}
printf("%d\n",?atoi(str)?);
}
這個(gè)程序不難寫(xiě),我告訴你思路和算法,你根據(jù)這個(gè)編寫(xiě)代碼就可以了。
1.由于你輸入的這一串?dāng)?shù)據(jù)可能都為數(shù)字,也可能包含其它字符,所以首先用一字符數(shù)組存放這個(gè)字符串。
2.用strlen函數(shù)計(jì)算這個(gè)字符串的長(zhǎng)度,在此基礎(chǔ)上借助for循環(huán)或while循環(huán)實(shí)現(xiàn)數(shù)組元素的遍歷。
3.遍歷每一個(gè)元素的同時(shí)用if語(yǔ)句判斷這個(gè)元素的ascii碼所在的范圍是否在48~57之間,如果不在則中止循環(huán),輸出判斷結(jié)果(即不是數(shù)字)。
4.如果最后一個(gè)元素仍然是數(shù)字,則整個(gè)字符串則為一個(gè)大數(shù)。