温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C语言中的字符型数据与ASCII码表有哪些

发布时间:2023-01-30 09:22:39 来源:亿速云 阅读:132 作者:iii 栏目:开发技术

今天小编给大家分享一下C语言中的字符型数据与ASCII码表有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

    1、字符型常量

    字符型常量指单个字符,是用一对单引号及其所括起来的字符表示。

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

    C语言的字符使用的就是ASCII字符集,总共有128个,每个相应的ASCII码都表示一个字符:

    (1)每一个字符都有唯一的次序值,即ASCII码。

    (2)数字’0’,‘1’,‘2’,…,‘9’、大写字母’A’,‘B’,‘C’,…,‘Z’、小写字母’a’,‘b’,‘c’,…,'z’的ASCII都是升序连续排列的。

    注: 数字和数字字符不一样的,带单引号的是字符,例如:1是整型数字,而’1’是字符,其ASCII码是49,即按整型输出的话就是49,按字符型数据输出就是1。

    ASCII码表:

    符号(解释)十进制十六进制
    符号(解释)十进制十六进制
    NULL(空操作)00x00
    @640x40
    SOH(标题开始)10x01
    A650x41
    STX(正文开始)20x02
    B660x42
    ETX(正文结束)30x03
    C670x43
    EOT(传输结束)40x04
    D680x44
    ENQ(请求)50x05
    E690x45
    ACK(收到通知)60x06
    F700x46
    BEL(响铃)70x07
    G710x47
    BS(退格)80x08
    H720x48
    HT(水平制表符)90x09
    I730x49
    LF(换行)100x0A
    J740x4A
    VT(垂直制表符)110x0B
    K750x4B
    FF(换页)120x0C
    L760x4C
    CR(回车)130x0D
    M770x4D
    SO(不用切换)140x0E
    N780x4E
    SI(启用切换)150x0F
    O790x4F
    DLE(数据链路转义)160x10
    P800x50
    DC1(设备控制1)170x11
    Q810x51
    DC2(设备控制2)180x12
    R820x52
    DC3(设备控制3)190x13
    S830x53
    DC4(设备控制4)200x14
    T840x54
    NAK(拒绝接收)210x15
    U850x55
    SYN(同步空闲)220x16
    V860x56
    ETB(结束传输块)230x17
    W870x57
    CAN(取消)240x18
    X880x58
    EM(媒介结束)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; 定义了一个字符型变量op,其数据类型为char型,即字符型数据。

    可以对其进行赋值,例如op='*'就是将字符型常量&rsquo;*&lsquo;赋值给变量op。

    字符型变量在计算机中是按照ASCII码的值来存储的,可以和整形数据进行运算,其运算规格类似,例如:op = '*'+1;,那么op按字符型数据输出就是&rsquo;+&rsquo;,按整型数据输出就是43。

    3、字符型数据的输入输出

    (1)scanf()和printf()函数输入输出字符

    scanf()和printf()函数进行字符型数据的输入输出和整型浮点型的处理方式完全一样,只是格式控制字符串中相应的格式控制说明为%c

    (2)字符输入函数getchar()

    getchar()函数可以从键盘输入一个字符。其一般用法为:

    char ch;ch = getchar();

    这句话就是从键盘输入一个字符,并将其赋给变量ch。

    (3)字符输出函数putchar()

    putchar()函数是输出一个字符。其一般用法为:

    putchar(输出参数);

    输出参数是字符型变量或者字符型常量。

    注: 使用getchar()函数和putchar()函数同样需要先包含头文件#include <stdio.h>

    函数getchar()和putchar()分别只能输入和输出一个字符,若要处理多个字符的输出和输出,那么一般需要采用循环的方式多次调用该函数。

    例如下面的代码为输入8个字符,然后将这8个字符再输出,每两个字符中间添加一个&rsquo;-&rsquo;。

    #include <stdio.h>
    
    int main(void)
    {
    	char ch
    	int first = 1, k;	/*first的值表示将要处理的是否为输入的第一个字符*/
    	printf("Enter 8 characters:");
    	for (k=1; k<=8; k++) {
    		ch = getchar();	/*变量ch接收从键盘输入的一个字符*/
    		if (first == 1) {
    			putchar(ch);	/*输出存放在变量ch中的字符*/
    			first = 0;		/*处理完第1个字符,清楚标志位*/
    		} else {	/*处理第2个及以后的字符*/
    			putchar('-'); /*输出字符常量'-'*/
    			putchar(ch);  /*输出存放在变量ch中的字符*/
    		}
    	}
    }

    运行结果:

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

    例:四则运算

    求解简单的四则运算表达式。输入一个形如 "操作数&emsp;运算符&emsp;操作数"的四则运算表达式,输出运算结果,要求对除数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 == '+'){							/*判断运算符是否为'+'*/
    		printf("=%.2f\n", value1+value2);	/*对操作数做加法操作*/
    	} else if (op == '-'){					/*否则判断运算符是否为'-'*/
    		printf("=%.2f\n", value1-value2);
    	} else if (op == '*'){					/*否则判断运算符是否为'*'*/
    		printf("=%.2f\n", value1*value2);
    	} else if (op == '/'){					/*否则判断运算符是否为'/'*/
    		if (value2 != 0){
    			printf("=%.2f\n", value1/value2);
    		} else {							/*对除数为0作特殊处理*/
    			printf("Divisior can not be 0!\n");
    		}
    	} else {
    		printf ("Unknown operator!\n");		/*运算符输出错误*/
    	}
    
    	return 0;
    }

    运行结果:

    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!

    注: 此处一定要注意,这里的操作数和运算符之间必须连续输入,两者之间不能有空格。

    这是因为空格也是一个字符,它会占据运算符的位置,在程序中就会是一个无法识别的运算符。

    如上述运行结果第三个。

    以上就是“C语言中的字符型数据与ASCII码表有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。

    向AI问一下细节

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    AI