c語言中定義了int,為何我輸入了字母或者其他字元

時間 2021-05-09 12:01:37

1樓:娛樂小八卦啊

這是因為在輸入了一個字母或者其他字元的時候,電腦會自動識別轉換為對應的ascii碼輸入程式。

ascii 碼使用指定的7 位或8 位二進位制陣列合來表示128 或256 種可能的字元。標準ascii 碼也叫基礎ascii碼,使用7 位二進位制數(剩下的1位二進位制為0)來表示所有的大寫和小寫字母,數字0 到9、標點符號,以及在美式英語中使用的特殊控制字元 。

在標準ascii中,其最高位(b7)用作奇偶校驗位。所謂奇偶校驗,是指在**傳送過程中用來檢驗是否出現錯誤的一種方法,一般分奇校驗和偶校驗兩種。

奇校驗規定:正確的**一個位元組中1的個數必須是奇數,若非奇數,則在最高位b7添1;偶校驗規定:正確的**一個位元組中1的個數必須是偶數,若非偶數,則在最高位b7添1。

擴充套件資料

在一般的電腦中,int佔用4位元組,32位元,資料範圍為-2147483648~2147483647[-2^31~2^31-]

在之前的微型機中,int佔用2位元組,16位元,資料範圍為-32768~32767[-2^15~2^15-1]

使用printf輸出int佔用位元組數量:

printf("%d",sizeof(int));

除了int型別之外,還有short、long、long long型別可以表示整數。

unsigned int 表示無符號整數,資料範圍為[0~2^32-1]

short、int、long、char、float、double 這六個關鍵字代表c 語言裡的六種基本資料型別。

變數的命名規則

1、命名應當直觀且可以拼讀,可望文知意,便於記憶和閱讀。

識別符號最好採用英文單詞或其組合,不允許使用拼音。程式中的英文單詞一般不要太複雜,用詞應當準確。

2、命名的長度應當符合「min-length && max-information」原則。

c 是一種簡潔的語言, 命名也應該是簡潔的。例如變數名maxval 就比maxvalueuntiloverflow 好用。識別符號的長度一般不要過長,較長的單詞可通過去掉「母音」形成縮寫。

另外,英文詞儘量不縮寫,特別是非常用專業名詞,如果有縮寫,在同一系統中對同一單詞必須使用相同的表示法,並且註明其意思。

2樓:墨笛紫竹

不是認為它是數字,而是判斷它為「非法資料」,不被錄入,然後在使用這個資料時(比如printf輸出),會隨機輸出一個資料,而這往往是一個大的資料。

3樓:白花戀歌

定義一個int,就表示告訴計算機這是一個整型資料,對計算機的輸入,都是轉換成ascii碼來儲存的,也就是說計算機並不知道你輸入的到底是數字還是字元或者字串,它只認編碼,你規定了這個編碼是int型,那就轉換成int型,也就是數字了

4樓:匿名使用者

你把你的**複製出來看看吧,光這樣說,誰明白你什麼意思?asc2碼最大就是255

你好!!

在c語言裡面,單個字元,都可以是以數字的形式表示的,這就是asc碼;

單個字元和數字是可以相互轉換的,轉換的規律要符合 asc碼錶;

給你一個碼錶,你看看吧

5樓:匿名使用者

c語言中

字母或者其他字元

是用其ascii碼儲存的。

6樓:

得到的是ascii碼

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

7樓:南宮緋鳶

#include

#include

#define n 100

main() }

擴充套件資料:根據ascii碼值判斷即可。由於數字,大小寫字母均分別為連續儲存,所以只需要與對應的最大最小值比較即可確定字元型別。、

8樓:徜逸

|可以根據以下**進行判斷:

#include

int main()

return 0;

}判斷輸入字元的方式

由於每個字元通常都有一個特定的ascii碼,可以通過ascii碼進行判斷,當滿足輸入的字元滿足特定數值的ascii碼進行判斷。部分ascii碼如下:

ascii 碼使用指定的7 位或8 位二進位制陣列合來表示128 或256 種可能的字元。標準ascii 碼也叫基礎ascii碼,使用7 位二進位制數(剩下的1位二進位制為0)來表示所有的大寫和小寫字母,數字0 到9、標點符號, 以及在美式英語中使用的特殊控制字元。

其中:0~31及127(共33個)是控制字元或通訊專用字元(其餘為可顯示字元),如控制符:lf(換行)、cr(回車)、ff(換頁)、del(刪除)、bs(退格)、bel(響鈴)等;

通訊專用字元:soh(文頭)、eot(文尾)、ack(確認)等;ascii值為8、9、10 和13 分別轉換為退格、製表、換行和回車字元。它們並沒有特定的圖形顯示,但會依不同的應用程式,而對文字顯示有不同的影響。

32~126(共95個)是字元(32是空格),其中48~57為0到9十個阿拉伯數字。

65~90為26個大寫英文字母,97~122號為26個小寫英文字母,其餘為一些標點符號、運算子號等。

9樓:杜哥是個小天才

#include

#define arraylen(array,len)int isletter(char c);

int isnumber(char c);

void main()

}int isletter(char c)int isnumber(char c)

{return (c>='0'&&c<='9');

拓展資料c語言是一門通用計算機程式語言,應用廣泛。c語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。

儘管c語言提供了許多低階處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規格寫出的c語言程式可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(微控制器或稱mcu)以及超級電腦等作業平臺。

10樓:糖醋炸洋芋

||js判斷字串是否為字母

var reg= /^[a-za-z]+$/;

if (reg.test(value)) //判斷是否符合正規表示式

從鍵盤輸入一個字元,判斷它是否是英文字元

#include

#include

int main(void)

因為我的程式執行結束會退出來所以我加了#include和system("pause");語句,可以刪掉

c語言中 'a'和a有什麼 區別 比如我要判斷 字串中的一個字母 str【i】是否為a

字元常量必須要用單引號引起來!

單獨的a只能做變化使用!

如果是這樣:

char a;

char str[10];

a='s' ;

str[0]=a; /釘;a是變化,其值為's'

str[1]='a' ; //'a'是常量

都是對的!

判斷一個字元是否是字母

intstart,end,i=0; char ch = s.tochararray();

while(!character.isletter(ch[i])) start=i;

while(character.isletter(ch[i])) end=i; 再取start與end間的字元組成字串。

思路是這個,你可以嘗試著修改。

11樓:匿名使用者

根據ascii碼值判斷即可。由於數字,大小寫字母均分別為連續儲存,所以只需要與對應的最大最小值比較即可確定字元型別。

**如下:

#include

int main()

12樓:as丶誘餌

#include

main()

我是新手

13樓:愛王華寶寶

#include

void main()

14樓:匿名使用者

是一個很專業的計算機問題,你可以試著輸入一下看看結果。

15樓:果菌

char a;

a = getchar();

getchar(); //這個是取掉輸入字元後的enter鍵if (a>='0' && a<='9')else if (a>='a' && a<='z')else

16樓:0不知火舞

||#include

void main()

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

17樓:非常可愛

可以使用**進行判斷:

#include

intmain()

return0;

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

intdigit;

printf("pleaseinputainteger\n");

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

if(0==ret)

18樓:四舍**入

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

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

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

19樓:匿名使用者

1 通過getchar讀入一個字元。

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

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

**:int main()

20樓:匿名使用者

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

21樓:匿名使用者

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

22樓:匿名使用者

這個看著簡單的問題,其實涉及的東西不少。由於種種原因, 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語言中我只定義int的話for i 0 i10 iscanf

常莉忻巨集峻 樓主需要理解一下c語言輸入輸出流的概念。scanf這個函式以空白字元 空格,製表符,回車符都算 作為間隔符,以回車符作為結束符。當c語言執行到scanf這句話的時候,會檢查輸入流是否為空,如果為空,程式就會停止,然後等待使用者輸入。當使用者輸入回車時,輸入結束,c語言會將剛才使用者輸入...

C語言中怎樣定義動態一維陣列,c語言中定義一個動態一維陣列的函式,然後在主函式中使用

天雲一號 在c語言中,陣列的定義都是固定長度的,長度不允許變化。可以通過連結串列的方式來達到定義 動態陣列 的等價功能,舉例如下 連結串列節點定義如下 struct node 存放資料時可以對節點中的node賦值即可,如 struct node p 定義一個連結串列節點p data 3 存放第一個資...

微控制器c語言中定義,微控制器C語言中 定義a1 P0 1 a2 P0 2 a8 P0 7 b P2 0 。a1 a8不斷隨機為1。

這樣實現 sbit p20 p2 0 char consum 0 char i,bitflag 0x01 for i 0 i 8 i if consum 3 p20 1 希望我的回答對你有幫助,有什麼問題歡迎一起 謝謝。 如果是c51微控制器 include void main 如果找完一次p0口後...