1樓:南瓜蘋果
寫出一個巨集定義,用於判斷輸入的一個字元是否是數字,若是得1,否則得0。
**如下:
#include
#define p(x) x>『0』&&x<『9』? 1:0
void main()
擴充套件資料
巨集定義的優點:
方便程式的修改
使用簡單巨集定義可用巨集代替一個在程式中經常使用的常量,這樣在將該常量改變時,不用對整個程式進行修改,只修改巨集定義的字串即可,而且當常量比較長時, 我們可以用較短的有意義的識別符號來寫程式,這樣更方便一些。
相對於==全域性變數==兩者的區別如下:
1、巨集定義在編譯期間即會使用並替換,而全域性變數要到執行時才可以。
2、巨集定義的只是一段字元,在編譯的時候被替換到引用的位置。在執行中是沒有巨集定義的概念的。而變數在執行時要為其分配記憶體。
3、巨集定義不可以被賦值,即其值一旦定義不可修改,而變數在執行過程中可以被修改。
4、巨集定義只有在定義所在檔案,或引用所在檔案的其它檔案中使用。 而全域性變數可以在工程所有檔案中使用,只要再使用前加一個宣告就可以了。換句話說,巨集定義不需要extern。
2樓:非常可愛
#include
intmain()
擴充套件資料輸入一個字元判斷其是字母字元還是數字字元
#include
int main()
3樓:匿名使用者
1、使用自 if(scanf("%d",&h)!=1) 來判斷printf("it's not a number!\n");
因為scanf是從快取中讀取輸入的資料如果輸入的不是數字,就會返回0,如果是數字就會返回1;一般人不知道scanf還有返回值,就可以看看標頭檔案中scanf的定義了。
2、例程:
#include
int main()
}//其中fflush(stdin)是清理快取,就像我上面說的scanf是從快取取數的,
4樓:匿名使用者
不能這麼做的,你輸入了不是數字的東西,輸入就已經錯誤了.
應該用字串判斷
#include
bool ok(char s)
return true;//都是是數字返回真}int getval(char s)
return ret;
}void main()
else
printf("input error!please input again!\n") ;
}for(i = 0 ; i < 10 ; i++)printf("%d\n",a[i]) ;}
5樓:
r = scanf("%d", &a[i]) ;
if(r==1) //啥意思嗎??
用isdigit()函式,
isdigit()函式包含在ctype.h標頭檔案中,原型: int isdigit(char c);
用法:#include
功能:判斷字內符c是否容為數字;
具體網上搜一下.
6樓:匿名使用者
#include
#include "string.h"
#include
#include
int main()
}while(!(a>=1&&a<=100));
if(a>b)
printf("too big!\n");
if(a==b)
if(a樓主幫你改了一下容你試試
7樓:
#include
void main()
}for(i = 0 ; i < 10 ; i++)printf("%d\n",a[i]) ;}
8樓:匿名使用者
for(i = 0 ; i < 10 ; )else
printf("input error!please input again!\n") ;
這句話,就死迴圈了,
9樓:匿名使用者
別用scanf,用getch,或者getline
c語言中如何判斷輸入的是字元還是數字
10樓:非常可愛
可以使用**進行判斷:
#include
intmain()
return0;
}擴充套件資料c語言判斷輸入是否是數字
intdigit;
printf("pleaseinputainteger\n");
intret=scanf("%d",&digit);
if(0==ret)
11樓:四舍**入
1、可以用sa**f或gets函式直接接收輸入的字串,然後用迴圈遍歷字串中每一個字元,判斷其是字母還是數字。
2、可以用迴圈呼叫getch()或getchar()函式來一個一個字元的接收輸入,同時判讀輸入的是字母還是數字。
3、假設字元c,滿足 (c>='a'&& c<='z')|| (c>='a' && c<='z')就是字母,滿足 (c>=0 && c<=9)就是數字。
12樓:匿名使用者
1 通過getchar讀入一個字元。
2 對字元判斷,如果字元在'0'到'9'之間,則為數字,否則為字元。
3 根據判斷結果,輸出程式執行結果。
**:int main()
13樓:匿名使用者
首先當作字元逐個讀入字串字串中,讀到分隔符(如白字元,逗號等)後,判斷這個字串中各個字元是否滿足條件即可(0 -- 9為十進位制數,含有abcdef或abcdef則為十六進位制數)。
14樓:匿名使用者
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是控制字元,其他....
15樓:匿名使用者
這個看著簡單的問題,其實涉及的東西不少。由於種種原因, 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
16樓:匿名使用者
這個要看你的**是怎麼處理輸入的
比如int a = 0;
scanf("%d", &a);
這就只能接收一個整數輸入
------------
最好貼出你的**,也許你提出的問題不是你真正面對的問題。
17樓:獅子
具體需要分析你寫的程式,因為如果你規定第二個輸入為字元型,那麼12 12a間的空格就是第二個資料,自然你看不見第二個輸入資料。這只是一種可能。
18樓:匿名使用者
建議你查一下 c函式庫 可以用 isdigit 來判斷是否為數字
19樓:李莞朋順
判斷是不是字元c可以使用:
if(g=='c')
滿足這個便是c
注意大小寫
20樓:龍鶴旗柔婉
#include
intmain()
21樓:幻翼高達
需要準備的材料分別有:電腦、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、最後,輸入字母,此時成功判斷了輸入內容為字母。
22樓:鈔潤桓鴻暉
對了,剛才經過試驗發現ctype.h裡面的函式都不能判定輸入的字元。。。拿isalpha來說,其函式原型為
intisalpha(int
ch);其規定了ch為int型的,如果輸入是字元的話就會程式錯誤,所以只能在程式本身裡先賦好值,就像ch=\'a\'
這樣判斷才行,而輸入的東西是不確定的,只有先賦值才不會有函式型別的判斷錯誤。。。不知道本人說的對不,這是我剛才試出來的,我剛學c不久。。。
c語言中如何判斷輸入是否是數字(並非0到9)
23樓:匿名使用者
這個程式不難寫,我告訴你思路和演算法,你根據這個編寫**就可以了。1.由於你輸入的這一串資料可能都為數字,也可能包含其它字元,所以首先用一字元陣列存放這個字串。
2.用strlen函式計算這個字串的長度,在此基礎上藉助for迴圈或while迴圈實現陣列元素的遍歷。3.
遍歷每一個元素的同時用if語句判斷這個元素的ascii碼所在的範圍是否在48~57之間,如果不在則中止迴圈,輸出判斷結果(即不是數字)。4.如果最後一個元素仍然是數字,則整個字串則為一個大數。
24樓:匿名使用者
利用ascii碼判斷 試試看
25樓:辛思若佟禮
0的ascii
碼好像是48,所以可以利用這個來判斷是否為數字,如果一個字元與48的差不在0到9就不是數字
c語言 如何判斷輸入的是數字還是字母
26樓:幻翼高達
需要準備的材料分別有:電腦、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、最後,輸入字母,此時成功判斷了輸入內容為字母。
c語言輸入字元判斷是字母數字還是特殊字元
include include define n 100 main 擴充套件資料 根據ascii碼值判斷即可。由於數字,大小寫字母均分別為連續儲存,所以只需要與對應的最大最小值比較即可確定字元型別。可以根據以下 進行判斷 include int main return 0 判斷輸入字元的方式 由於每...
c語言判斷輸入得數子是幾位數,C語言 判斷一個輸入得數子是幾位數
判斷一個輸入得數子是幾位數的源 如下 includevoid main void count printf 請輸入一串字元,數字 字母皆可 n count void count char c 32 int n 0 while c n getchar n n printf 輸入字元總數為 d n n ...
用c語言編寫程式判斷輸入的正數是否為迴文數
include stdio.h include conio.h int main void while m 0 k for i 0 izhi是否為迴文數 if digit i digit k break 不相等dao 則不是內迴文數,容推出迴圈 if i else printf ld is a hu...