1樓:匿名使用者
可以讀入五個輸入來的字源符,然後迴圈判斷是否為數字。
如果c是數字,那麼必須滿足 c>='0' && c <='9',反之則是不符合要求的。**如下:
int c[5];
int i;
for(i = 0; i < 5; i ++)c[i] = getchar();//讀入五個字元。
for(i = 0; i < 5; i ++)if(c[i]<'0' || c[i] >'9')break;//如果不符合,則退出迴圈。
if(i == 5) printf("全部為數字字元\n");//如i為5,則為正常退出,不是通過break退出的,說明全是數字字元。
else printf("存在不是數字字元的元素\n");
2樓:金色潛鳥
int k;
k = scanf("%d",&a[i]); 用scanf 返回值判斷 是否成功讀到數了。
if (k != 1) 讀到非法數了。
3樓:匿名使用者
你輸入的數字如果是三位數或者是四位數的話,那肯定是對的。你都scanf("%d",&a[i]);這樣了,如果你輸入1a3而不是123,那根本就讀不進去。
4樓:永恆の眷戀
你的意思是你要來連著輸入5個字自符,沒有空格也沒有換行?那你的輸入方法用錯了,因為%d的範圍可以包括int型別的取之範圍的,所以不管你輸入多少位,系統永遠認為你輸入的是一個int,你可以用gets()呀,先獲得連續的字串,你就可以用a[i]<'0' || a[i]>'9'來判斷了,當然a[i]的型別是char型別的,如果不確定是幾位,你可以定義char a[100],到時候用strlen獲得長度,a[strlen(a)] = '\0'就好啦 ,隨便寫個程式給你看看吧
#include
#include
int main()
else
printf("%c", a[i]);
}printf("\n%d\n", n);
getchar();
return 0;}
5樓:匿名使用者
看幫助,isdigit可以用來判斷
6樓:匿名使用者
ctype.h 中有個isdigital(),餘下的我就不多說了吧。
c語言中如何判斷輸入的是字元還是數字
7樓:非常可愛
可以使用**進行判斷:
#include
intmain()
return0;
}擴充套件資料c語言判斷輸入是否是數字
intdigit;
printf("pleaseinputainteger\n");
intret=scanf("%d",&digit);
if(0==ret)
8樓:四舍**入
1、可以用sa**f或gets函式直接接收輸入的字串,然後用迴圈遍歷字串中每一個字元,判斷其是字母還是數字。
2、可以用迴圈呼叫getch()或getchar()函式來一個一個字元的接收輸入,同時判讀輸入的是字母還是數字。
3、假設字元c,滿足 (c>='a'&& c<='z')|| (c>='a' && c<='z')就是字母,滿足 (c>=0 && c<=9)就是數字。
9樓:匿名使用者
1 通過getchar讀入一個字元。
2 對字元判斷,如果字元在'0'到'9'之間,則為數字,否則為字元。
3 根據判斷結果,輸出程式執行結果。
**:int main()
10樓:匿名使用者
首先當作字元逐個讀入字串字串中,讀到分隔符(如白字元,逗號等)後,判斷這個字串中各個字元是否滿足條件即可(0 -- 9為十進位制數,含有abcdef或abcdef則為十六進位制數)。
11樓:匿名使用者
isalnum
語法:#include
int isalnum( int ch );
功能:如果引數是
數字或字母字元,函式返回非零值,否則返回零值。
isalpha
語法:#include
int isalpha( int ch );
功能:如果引數是字母字元,函式返回非零值,否則返回零值。
isdigit
語法:#include
int isdigit( int ch );
功能:如果引數是0到9之間的數字字元,函式返回非零值,否則返回零值isxdigit
語法:#include
int isxdigit( int ch );
功能:如果引數是十六進位制數字字元(即:a-f, a-f, 0-9),函式返回非零值,否則返回零值。
另外,可以根據ascii的值來判斷:
48~57是數字 ,0~31是控制字元,其他....
12樓:匿名使用者
這個看著簡單的問題,其實涉及的東西不少。由於種種原因, c的輸入部分,如scanf等,安全問題很大, 所以如果可能,就如前面有人建議的那樣,把使用者輸入當字串一起讀入,然後自己處理。下面的**用fgets讀入全部輸入,然後用strtok分割,對分割後的字串再做是否數字串的檢查。
(注:有人認為strtok不安全,其實不一定,要看如何使用,如果可能採用支援新的c11的安全庫xx_s結尾的,或自己寫,或採用第3方開源的庫都是可以的)。下面是一個完整的例子:
#include
#include
#include
#include
#define max_input 1024int isnumstring(const char *s);
int main(int argc, char** argv)printf("numeric string number: %d\n", count_numstring);
}return 0;
}int isnumstring(const char* s)}
return retcode;
}執行結果:
enter strings, enter to continue, ctrl-c to exit.
1 2 3
numeric string number: 31,2s.3 | 4 # 5
numeric string number: 4
13樓:匿名使用者
這個要看你的**是怎麼處理輸入的
比如int a = 0;
scanf("%d", &a);
這就只能接收一個整數輸入
------------
最好貼出你的**,也許你提出的問題不是你真正面對的問題。
14樓:獅子
具體需要分析你寫的程式,因為如果你規定第二個輸入為字元型,那麼12 12a間的空格就是第二個資料,自然你看不見第二個輸入資料。這只是一種可能。
15樓:匿名使用者
建議你查一下 c函式庫 可以用 isdigit 來判斷是否為數字
16樓:李莞朋順
判斷是不是字元c可以使用:
if(g=='c')
滿足這個便是c
注意大小寫
17樓:龍鶴旗柔婉
#include
intmain()
18樓:幻翼高達
需要準備的材料分別有:電腦、c語言編譯器。
1、首先,開啟c語言編譯器,新建一個初始的.cpp檔案,例如:test.cpp。
2、其次,在test.cpp檔案中,輸入c語言**:char a = getchar(); getchar();
if (a <= '9' && a >= '0') printf("數字");else printf("字母");
3、然後,編譯器執行test.cpp檔案,輸入數字,此時會成功判斷輸入內容為數字。
4、最後,輸入字母,此時成功判斷了輸入內容為字母。
19樓:鈔潤桓鴻暉
對了,剛才經過試驗發現ctype.h裡面的函式都不能判定輸入的字元。。。拿isalpha來說,其函式原型為
intisalpha(int
ch);其規定了ch為int型的,如果輸入是字元的話就會程式錯誤,所以只能在程式本身裡先賦好值,就像ch=\'a\'
這樣判斷才行,而輸入的東西是不確定的,只有先賦值才不會有函式型別的判斷錯誤。。。不知道本人說的對不,這是我剛才試出來的,我剛學c不久。。。
c語言 如何判斷輸入的是數字還是字元
20樓:高金山
你這個程式與「輸入的是字元還是數字」沒有關係。
關鍵是不能用double型別的r與0直接這樣進行比較:r!=0應該像下面這樣寫:
const float epsinon = 0.00001;
if ((x >= - epsinon) && (x <= epsinon)
不可將浮點變數用「==」或「!=」與數字比較,應該設法轉化成「>=」或「<=」此類形式。
21樓:左稚幻
使用isdigit函式可以判斷
22樓:爾夢山柔通
char型的話可以與
『0'到
『9』比
如char
a;if(a>'0'&&a<'9')
int型可比較ascii碼,具體
inta;
if(a>(int)'0'&&a<(int)'9')其實強制轉換不一定需要,,呵呵
23樓:疏獻湯爾
他們說的是理論,具體程式我給你吧。
此程式在microsoft
visual
c++6.0下編譯並通過
#include
intmain()
24樓:利韶段幹帥
按字元讀入儲存在char中(假設儲存在char型變數c中),若c>='0'&&c<='9'返回值為true,則是數字,否則(返回值為false)是其他字元。
25樓:業運城誠
你是知道自己想要輸入的是字元還是數字,對吧?
如果是這樣,你就加一個標誌符,用來判斷輸入的東西是不是你要的。
int flag;
flag = scanf("%d",&n);
if(flag==1)
printf("right\n");
else
printf("wrong\n");
flag = scanf("%d",&n); //送返成功讀入的資料個數。輸入字母,flag為0
26樓:邰霓雲德懷
intisdigit(int
ch)若ch是數字('0'-'9')返回非0值,否則返回0需要包含標頭檔案ctype.h
再就是像一樓那樣說的,根據這個字元的ascii碼來判斷
27樓:貴冠朱藍
#include
#include
void
main()
c語言 輸入一個字元,判斷該字元是數字、字母、空格還是其他字元。
28樓:匿名使用者
三個空分別是:
1、ch >= 'a'&&ch<='z' || a>='a'&&ch<='z'
2、 ch >= '0' && ch<='9'
3、 ch == ' '
4、完整**
#include
#include int main()
else if(ch>='a'&&ch<='z')
else if(ch>='a'&&ch<='z')
else if(ch==' ')
else
} return 0;
}擴充套件資料
c語言特有特點
1、c語言是一個有結構化程式設計、具有變數作用域(variable scope)以及遞迴功能的過程式語言。
2、c語言傳遞引數均是以值傳遞(pass by value),另外也可以傳遞指標(a pointer passed by value)。
3、不同的變數型別可以用結構體(struct)組合在一起。
4、只有32個保留字(reserved keywords),使變數、函式命名有更多彈性。
參考資料
c語言輸入字元判斷該字元是數字字母空
三個空分別是 1 ch a ch z a a ch z 2 ch 0 ch 9 3 ch 4 完整 include include int main else if ch a ch z else if ch a ch z else if ch else return 0 擴充套件資料 c語言特有特點...
C語言 如何判斷字元陣列裡輸入的是字母還是數字還是漢字還是特殊字元
ascii碼佔用一個位元組,漢字佔用兩個位元組,並且漢字的兩個位元組的最高位都是1,而ascii碼的最高位都是0,可以據此判斷 c語言 輸入一個字元,判斷是字母,數字,還是特殊字元 include include define n 100 main 擴充套件資料 根據ascii碼值判斷即可。由於數字...
C語言程式設計 輸入字元後,按各字元的ASCII碼從小到大的
ascii碼從小到 大的順序輸出這三個字元的源 如下 include stdio.h void main 擴充套件資料找出並列印ascii碼最大的字元的源 如下 include void main include stdio h main chara,b,c,d inti scanf d i get...