C語言如何判斷輸入的是數字還是字元

2021-03-07 04:32:20 字數 6186 閱讀 2593

1樓:高金山

你這個程式與「輸入的是字元還是數字」沒有關係。

關鍵是不能用double型別的r與0直接這樣進行比較:r!=0應該像下面這樣寫:

const float epsinon = 0.00001;

if ((x >= - epsinon) && (x <= epsinon)

不可將浮點變數用「==」或「!=」與數字比較,應該設法轉化成「>=」或「<=」此類形式。

2樓:左稚幻

使用isdigit函式可以判斷

3樓:爾夢山柔通

char型的話可以與

『0'到

『9』比

如char

a;if(a>'0'&&a<'9')

int型可比較ascii碼,具體

inta;

if(a>(int)'0'&&a<(int)'9')其實強制轉換不一定需要,,呵呵

4樓:疏獻湯爾

他們說的是理論,具體程式我給你吧。

此程式在microsoft

visual

c++6.0下編譯並通過

#include

intmain()

5樓:利韶段幹帥

按字元讀入儲存在char中(假設儲存在char型變數c中),若c>='0'&&c<='9'返回值為true,則是數字,否則(返回值為false)是其他字元。

6樓:業運城誠

你是知道自己想要輸入的是字元還是數字,對吧?

如果是這樣,你就加一個標誌符,用來判斷輸入的東西是不是你要的。

int flag;

flag = scanf("%d",&n);

if(flag==1)

printf("right\n");

else

printf("wrong\n");

flag = scanf("%d",&n); //送返成功讀入的資料個數。輸入字母,flag為0

7樓:邰霓雲德懷

intisdigit(int

ch)若ch是數字('0'-'9')返回非0值,否則返回0需要包含標頭檔案ctype.h

再就是像一樓那樣說的,根據這個字元的ascii碼來判斷

8樓:貴冠朱藍

#include

#include

void

main()

c語言 如何實現判斷輸入的是否是數字是否是字元

9樓:田真久

使用ctype.h裡面isdigit()和isalpha函式就可以判斷了

#include

#include

int main()

10樓:

標頭檔案ctype.h裡有兩個函式:

isalpha(ch),判斷ch是不是字元,是的話返回「真」,否則返回「假」;

isdigit(ch),判斷ch是不是數字,是的話返回「真」,否則返回「假」。

包含上標頭檔案,直接用就行了……

11樓:匿名使用者

你好,這個問題其實並不難,你只要明白了c++鍵盤輸入的原理,其實鍵盤輸入的都是ask碼然後根據你想要的輸入是int還是char再轉換成你想要的值。

既然你想判斷鍵盤的輸入你可以用一個字串先把你的輸入存下來然後再判斷那些字元是數字還是字母就ok啦

eg:#include

void main()

謝謝,,,不知道c中還有ctype,,,其實你可以用ctype中的函式判斷,,,好吧,其實我學的是c++

12樓:匿名使用者

//判斷輸入字元與0-9的ascii碼值差就可以

#include

int main()

13樓:陶萌圭雨伯

純數字比如32832,128.321,其他的dsajk213d都算英文。

#include

void

main()

if(i==n)

printf("這是純數字\n");

else

printf("這是字母,或者夾著數字的字母\n");

getch();}

c語言:如何判斷輸入的是數字還是其他字元 5

14樓:自我程式設計

有很多方法:

1、可以用sa**f或gets函式直接接收輸入的字串,然後用迴圈遍歷字串中每一個字元,判斷其是字母還是數字。

2、可以用迴圈呼叫getch()或getchar()函式來一個一個字元的接收輸入,同時判讀輸入的是字母還是數字。

至於怎麼判讀是字母還是數字,很簡單,假設字元c,滿足 (c>='a'&& c<='z')|| (c>='a' && c<='z')就是字母。

滿足 (c>='0' && c<='9')就是數字。

c語言 如何判斷輸入的是數字還是字母

15樓:幻翼高達

需要準備的材料分別有:電腦、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、最後,輸入字母,此時成功判斷了輸入內容為字母。

16樓:匿名使用者

# include

# include //引用標頭檔案,conio=console input/output 簡稱coni(input)o(output)

int main(void)

17樓:

int i=0;

while(1)

else}

c語言裡 輸入時 怎麼判斷是字元還是數字?

18樓:幻翼高達

需要準備的材料分別有:電腦、c語言編譯器。

1、首先,開啟c語言編譯器,新建回一個初始.cpp檔案答,例如:test.cpp。

2、在test.cpp檔案中,輸入c語言**:

char a;scanf("%c", &a);

if (a < '0' || a > '9')3、編譯器執行test.cpp檔案,此時成功判斷了輸入的是字元而列印了「輸入錯誤」的提示。

19樓:jb繡條龍

寫個判斷語句就行啊,先輸入,如果輸入的是數字輸出,否則輸出輸入出錯。

寫的時候肯定把輸入賦值給變數了呀只需判斷變數是否為字元型

20樓:思想與意識啊

你在輸入的時候要定義輸入型別,如果型別不對,結果就有問題。

21樓:匿名使用者

」思想與意識啊「來的回源答是正確的,一般scanf(「%d」,&a),那麼a必須是int形,已經指定你需要輸入整形了,scanf(「%c」,&a),那麼a必須是char形,已經指定你需要輸入字元型了。你輸入不是想要型別,那麼會出現程式執行崩潰的。

22樓:黃曉輝

if(scanf("%d",&h)!=1)

printf("it's not a number!\n");

因為scanf是從快取中讀取輸入的資料如果你輸入的不是數字專,就會屬返回0,如果是數字就會返回1;

一般人不知道scanf還有返回值,就可以看看標頭檔案中scanf的定義了。

其實我還有一個更好的辦法,你輸入的不是數字就要他重新輸入,直到輸入的是數字為止,這樣是最好的寫法。

程式如下:

#include

int main()

}其中fflush(stdin)是清理快取,就像我上面說的scanf是從快取取數的,

23樓:周生

isalpha函式可以幫你

c語言中如何判斷輸入的是字元還是數字

24樓:非常可愛

可以使用**進行判斷:

#include

intmain()

return0;

}擴充套件資料c語言判斷輸入是否是數字

intdigit;

printf("pleaseinputainteger\n");

intret=scanf("%d",&digit);

if(0==ret)

25樓:四舍**入

1、可以用sa**f或gets函式直接接收輸入的字串,然後用迴圈遍歷字串中每一個字元,判斷其是字母還是數字。

2、可以用迴圈呼叫getch()或getchar()函式來一個一個字元的接收輸入,同時判讀輸入的是字母還是數字。

3、假設字元c,滿足 (c>='a'&& c<='z')|| (c>='a' && c<='z')就是字母,滿足 (c>=0 && c<=9)就是數字。

26樓:匿名使用者

1 通過getchar讀入一個字元。

2 對字元判斷,如果字元在'0'到'9'之間,則為數字,否則為字元。

3 根據判斷結果,輸出程式執行結果。

**:int main()

27樓:匿名使用者

首先當作字元逐個讀入字串字串中,讀到分隔符(如白字元,逗號等)後,判斷這個字串中各個字元是否滿足條件即可(0 -- 9為十進位制數,含有abcdef或abcdef則為十六進位制數)。

28樓:匿名使用者

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是控制字元,其他....

29樓:匿名使用者

這個看著簡單的問題,其實涉及的東西不少。由於種種原因, 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

c語言裡 輸入時 怎麼判斷是字元還是數字

需要準備的材料分別有 電腦 c語言編譯器。1 首先,開啟c語言編譯器,新建回一個初始.cpp檔案答,例如 test.cpp。2 在test.cpp檔案中,輸入c語言 char a scanf c a if a 0 a 9 3 編譯器執行test.cpp檔案,此時成功判斷了輸入的是字元而列印了 輸入錯...

c語言如何判斷輸入型別,c語言 輸入一個字元,判斷是字母,數字,還是特殊字元

if scanf d h 1 printf it s not a number n 因為scanf是從快取中讀取輸入的資料如果你輸入的不是數字,就會返回0,如果是數字就會返回1 一般人不知道scanf還有返回值,就可以看看標頭檔案中scanf的定義了。其實我還有一個更好的辦法,你輸入的不是數字就要他...

c語言如何輸入中文,C語言如何輸入中文

輸入以下 就可以輸入中文了 如果是用tc進行程式設計,那麼只能顯示英文,如果用vc進行程式設計就可以顯示中文了。兩者只是編譯工具不一樣,程式語言的使用是一樣的。include include int main char name 6 20 char temp 20 printf 請輸入6個人的名字 ...