溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C語(yǔ)言中的字符型數(shù)據(jù)與ASCII碼表有哪些

發(fā)布時(shí)間:2023-01-30 09:22:39 來(lái)源:億速云 閱讀:121 作者:iii 欄目:開(kāi)發(fā)技術(shù)

今天小編給大家分享一下C語(yǔ)言中的字符型數(shù)據(jù)與ASCII碼表有哪些的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。

    1、字符型常量

    字符型常量指單個(gè)字符,是用一對(duì)單引號(hào)及其所括起來(lái)的字符表示。

    例如:‘A’、‘a’、‘0’、’$‘等都是字符型常量。

    C語(yǔ)言的字符使用的就是ASCII字符集,總共有128個(gè),每個(gè)相應(yīng)的ASCII碼都表示一個(gè)字符:

    (1)每一個(gè)字符都有唯一的次序值,即ASCII碼。

    (2)數(shù)字’0’,‘1’,‘2’,…,‘9’、大寫(xiě)字母’A’,‘B’,‘C’,…,‘Z’、小寫(xiě)字母’a’,‘b’,‘c’,…,'z’的ASCII都是升序連續(xù)排列的。

    注: 數(shù)字和數(shù)字字符不一樣的,帶單引號(hào)的是字符,例如:1是整型數(shù)字,而’1’是字符,其ASCII碼是49,即按整型輸出的話就是49,按字符型數(shù)據(jù)輸出就是1。

    ASCII碼表:

    符號(hào)(解釋)十進(jìn)制十六進(jìn)制
    符號(hào)(解釋)十進(jìn)制十六進(jìn)制
    NULL(空操作)00x00
    @640x40
    SOH(標(biāo)題開(kāi)始)10x01
    A650x41
    STX(正文開(kāi)始)20x02
    B660x42
    ETX(正文結(jié)束)30x03
    C670x43
    EOT(傳輸結(jié)束)40x04
    D680x44
    ENQ(請(qǐng)求)50x05
    E690x45
    ACK(收到通知)60x06
    F700x46
    BEL(響鈴)70x07
    G710x47
    BS(退格)80x08
    H720x48
    HT(水平制表符)90x09
    I730x49
    LF(換行)100x0A
    J740x4A
    VT(垂直制表符)110x0B
    K750x4B
    FF(換頁(yè))120x0C
    L760x4C
    CR(回車)130x0D
    M770x4D
    SO(不用切換)140x0E
    N780x4E
    SI(啟用切換)150x0F
    O790x4F
    DLE(數(shù)據(jù)鏈路轉(zhuǎn)義)160x10
    P800x50
    DC1(設(shè)備控制1)170x11
    Q810x51
    DC2(設(shè)備控制2)180x12
    R820x52
    DC3(設(shè)備控制3)190x13
    S830x53
    DC4(設(shè)備控制4)200x14
    T840x54
    NAK(拒絕接收)210x15
    U850x55
    SYN(同步空閑)220x16
    V860x56
    ETB(結(jié)束傳輸塊)230x17
    W870x57
    CAN(取消)240x18
    X880x58
    EM(媒介結(jié)束)250x19
    Y890x59
    SUB(代替)260x1A
    Z900x5A
    ESC(換碼(溢出))270x1B
    [910x5B
    FS(文件分隔符)280x1C
    \920x5C
    GS(分組符)290x1D
    ]930x5D
    RS(記錄分隔符)300x1E
    ^940x5E
    US(單元分隔符)310x1F
    _950x5F
    (space)(空格)320x20
    `960x60
    !330x21
    a970x61
    "340x22
    b980x62
    #350x23
    c990x63
    $360x24
    d1000x64
    %370x25
    e1010x65
    &380x26
    f1020x66
    ’390x27
    g1030x67
    (400x28
    h1040x68
    )410x29
    i1050x69
    *420x2A
    j1060x6A
    +430x2B
    k1070x6B
    ,440x2C
    l1080x6C
    -450x2D
    m1090x6D
    .460x2E
    n1100x6E
    /470x2F
    o1110x6F
    0480x30
    p1120x70
    1490x31
    q1130x71
    2500x32
    r1140x72
    3510x33
    s1150x73
    4520x32
    t1160x74
    5530x35
    u1170x75
    6540x36
    v1180x76
    7550x37
    w1190x77
    8560x38
    x1200x78
    9570x39
    y1210x79
    :580x3A
    z1220x7A
    ;590x3B
    {1230x7B
    <600x3C
    |1240x7C
    =610x3D
    }1250x7D
    >620x3E
    ~1260x7E
    ?630x3F
    DEL(刪除)1270x7F

    2、字符型變量

    用char定義的變量為字符型變量。

    例如:char op; 定義了一個(gè)字符型變量op,其數(shù)據(jù)類型為char型,即字符型數(shù)據(jù)。

    可以對(duì)其進(jìn)行賦值,例如op='*'就是將字符型常量&rsquo;*&lsquo;賦值給變量op。

    字符型變量在計(jì)算機(jī)中是按照ASCII碼的值來(lái)存儲(chǔ)的,可以和整形數(shù)據(jù)進(jìn)行運(yùn)算,其運(yùn)算規(guī)格類似,例如:op = '*'+1;,那么op按字符型數(shù)據(jù)輸出就是&rsquo;+&rsquo;,按整型數(shù)據(jù)輸出就是43。

    3、字符型數(shù)據(jù)的輸入輸出

    (1)scanf()和printf()函數(shù)輸入輸出字符

    scanf()和printf()函數(shù)進(jìn)行字符型數(shù)據(jù)的輸入輸出和整型浮點(diǎn)型的處理方式完全一樣,只是格式控制字符串中相應(yīng)的格式控制說(shuō)明為%c。

    (2)字符輸入函數(shù)getchar()

    getchar()函數(shù)可以從鍵盤輸入一個(gè)字符。其一般用法為:

    char ch;ch = getchar();

    這句話就是從鍵盤輸入一個(gè)字符,并將其賦給變量ch。

    (3)字符輸出函數(shù)putchar()

    putchar()函數(shù)是輸出一個(gè)字符。其一般用法為:

    putchar(輸出參數(shù));

    輸出參數(shù)是字符型變量或者字符型常量。

    注: 使用getchar()函數(shù)和putchar()函數(shù)同樣需要先包含頭文件#include <stdio.h>

    函數(shù)getchar()和putchar()分別只能輸入和輸出一個(gè)字符,若要處理多個(gè)字符的輸出和輸出,那么一般需要采用循環(huán)的方式多次調(diào)用該函數(shù)。

    例如下面的代碼為輸入8個(gè)字符,然后將這8個(gè)字符再輸出,每?jī)蓚€(gè)字符中間添加一個(gè)&rsquo;-&rsquo;。

    #include <stdio.h>
    
    int main(void)
    {
    	char ch
    	int first = 1, k;	/*first的值表示將要處理的是否為輸入的第一個(gè)字符*/
    	printf("Enter 8 characters:");
    	for (k=1; k<=8; k++) {
    		ch = getchar();	/*變量ch接收從鍵盤輸入的一個(gè)字符*/
    		if (first == 1) {
    			putchar(ch);	/*輸出存放在變量ch中的字符*/
    			first = 0;		/*處理完第1個(gè)字符,清楚標(biāo)志位*/
    		} else {	/*處理第2個(gè)及以后的字符*/
    			putchar('-'); /*輸出字符常量'-'*/
    			putchar(ch);  /*輸出存放在變量ch中的字符*/
    		}
    	}
    }

    運(yùn)行結(jié)果:

    Enter 8 characters:gorgeous
    g-o-r-g-e-o-u-s

    例:四則運(yùn)算

    求解簡(jiǎn)單的四則運(yùn)算表達(dá)式。輸入一個(gè)形如 "操作數(shù)&emsp;運(yùn)算符&emsp;操作數(shù)"的四則運(yùn)算表達(dá)式,輸出運(yùn)算結(jié)果,要求對(duì)除數(shù)0的情況做特別處理。

    #include <stdio.h>
    
    int main(void)
    {
    	double value1, value2;
    	char op;
    	
    	printf("Type in an expression:");	
    	scanf("%lf%c%lf", &value1, &op, &value2);
    	if (op == '+'){							/*判斷運(yùn)算符是否為'+'*/
    		printf("=%.2f\n", value1+value2);	/*對(duì)操作數(shù)做加法操作*/
    	} else if (op == '-'){					/*否則判斷運(yùn)算符是否為'-'*/
    		printf("=%.2f\n", value1-value2);
    	} else if (op == '*'){					/*否則判斷運(yùn)算符是否為'*'*/
    		printf("=%.2f\n", value1*value2);
    	} else if (op == '/'){					/*否則判斷運(yùn)算符是否為'/'*/
    		if (value2 != 0){
    			printf("=%.2f\n", value1/value2);
    		} else {							/*對(duì)除數(shù)為0作特殊處理*/
    			printf("Divisior can not be 0!\n");
    		}
    	} else {
    		printf ("Unknown operator!\n");		/*運(yùn)算符輸出錯(cuò)誤*/
    	}
    
    	return 0;
    }

    運(yùn)行結(jié)果:

    Type in an expression:8.65+3.29
    =11.94

    Type in an expression:76.9/0
    Divisior can not be 0!

    Type in an expression:47.2 - 76
    Unknown operator!

    注: 此處一定要注意,這里的操作數(shù)和運(yùn)算符之間必須連續(xù)輸入,兩者之間不能有空格。

    這是因?yàn)榭崭褚彩且粋€(gè)字符,它會(huì)占據(jù)運(yùn)算符的位置,在程序中就會(huì)是一個(gè)無(wú)法識(shí)別的運(yùn)算符。

    如上述運(yùn)行結(jié)果第三個(gè)。

    以上就是“C語(yǔ)言中的字符型數(shù)據(jù)與ASCII碼表有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

    向AI問(wèn)一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI