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

2021-05-11 15:35:26 字數 6178 閱讀 4636

1樓:非常可愛

可以使用**進行判斷:

#include

intmain()

return0;

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

intdigit;

printf("pleaseinputainteger\n");

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

if(0==ret)

2樓:四舍**入

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

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

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

3樓:匿名使用者

1 通過getchar讀入一個字元。

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

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

**:int main()

4樓:匿名使用者

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

5樓:匿名使用者

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

6樓:匿名使用者

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

7樓:匿名使用者

這個要看你的**是怎麼處理輸入的

比如int a = 0;

scanf("%d", &a);

這就只能接收一個整數輸入

------------

最好貼出你的**,也許你提出的問題不是你真正面對的問題。

8樓:獅子

具體需要分析你寫的程式,因為如果你規定第二個輸入為字元型,那麼12 12a間的空格就是第二個資料,自然你看不見第二個輸入資料。這只是一種可能。

9樓:匿名使用者

建議你查一下 c函式庫 可以用 isdigit 來判斷是否為數字

10樓:李莞朋順

判斷是不是字元c可以使用:

if(g=='c')

滿足這個便是c

注意大小寫

11樓:龍鶴旗柔婉

#include

intmain()

12樓:幻翼高達

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

13樓:鈔潤桓鴻暉

對了,剛才經過試驗發現ctype.h裡面的函式都不能判定輸入的字元。。。拿isalpha來說,其函式原型為

intisalpha(int

ch);其規定了ch為int型的,如果輸入是字元的話就會程式錯誤,所以只能在程式本身裡先賦好值,就像ch=\'a\'

這樣判斷才行,而輸入的東西是不確定的,只有先賦值才不會有函式型別的判斷錯誤。。。不知道本人說的對不,這是我剛才試出來的,我剛學c不久。。。

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

14樓:幻翼高達

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

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

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

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

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

15樓:jb繡條龍

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

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

16樓:思想與意識啊

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

17樓:匿名使用者

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

18樓:黃曉輝

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

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

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

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

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

程式如下:

#include

int main()

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

19樓:周生

isalpha函式可以幫你

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

20樓:自我程式設計

有很多方法:

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

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

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

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

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

21樓:田真久

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

#include

#include

int main()

22樓:

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

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

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

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

23樓:匿名使用者

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

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

eg:#include

void main()

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

24樓:匿名使用者

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

#include

int main()

25樓:陶萌圭雨伯

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

#include

void

main()

if(i==n)

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

else

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

getch();}

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

26樓:匿名使用者

用庫函式,isalpha(x)判斷字母,isdigit(x)判斷數字

27樓:爾夢山柔通

這個**,輸錯了(輸入了字元或者輸入了非1),就會讓你繼續輸入吧。不會報錯。最好在scanf後面加個清空緩衝區,吸收無效字元的語句。

28樓:廣溫倫賦

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

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

const

float

epsinon

=0.00001;

if((x

>=-epsinon)

&&(x

<=epsinon)

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

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

29樓:高金山

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

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

const float epsinon = 0.00001;

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

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

C語言中什麼是字元型資料?如何宣告

char型別 一半情況下佔用8位,分為signed和unsigned,在計算機中全都以ascii值表示,signed char 有符號字元型 長度 位元組 為1 128 127 unsigned char 無符號字元型 長度 位元組 為1 0 255 書中基本只給到0 127 char c a ch...

c語言中判斷字元是不是字母用什麼函式

直接比較這個字元的值是不是 a z a z 就可以了啊,不用函式的 int isalpha int ch 若ch是字母 a z a z 返回非0值,否則返回0 貌似是判斷ascii值吧,在哪額範圍內,具體的忘記了。int isalpha int c c語言 輸入一個字元,判斷該字元是數字 字母 空格...

C語言特殊字符集有哪些 C語言中的特殊字符集

屬於 c 語言中的操作運算子,如下圖所示 按位與 比如3 2 2相當於 求餘數,比如3 2 1 按位右移 比如3 1 1 0000 0011 1 0000 0001 低位移除,高位補零。按位左移,比如1 1 2 0000 0001 1 0000 0010 高位溢位,低位補零。比如象 這些根本不叫字元...