• C语言----字符(基础篇九)


      最近废话不多继续提升。

      字符常量 

       ‘a’和’9’都是字符常量

        注意:’9’和9有很大区别

        ※单引号的空格’□’也是一个字符常量,但不能写成连续两个单引号’’

      字符变量

        char c; /*定义一个字符变量*/

        ※字符变量在内存中占一个字节,它只能存放ASCII(美国信息交换标准代码)码。

        ※标准的ASCII码只有127个字符(见附录1),电子设备统一了标准,各种电报机,打印机,电脑就可参照标准大规模生产,还可以通过ASCII码交换数据。

        ※我们在用键盘输入数据时,电脑会从ASCII对照表中读取相应的ASCII码装入内存,而不是真实的字符。同理,想要显示信息在屏幕上时,也要使用参照表将ASCII码转换成字符,再显示在屏幕上。

     

        ※大家看到,在 ASCII码表中,每个字符都有序号,要记住我们常用的字符对应的序号也不难,方法如下:

     

           ‘0’~’9’对应的整数为48~57

     

           ‘A’~’Z’对应的整数为65~90

           ‘a’~’z’ 对应的整数为97~122

     

        ※大写字母与小写字母的差值为32,于是得出小写字母减32的值刚好是对应的大写字母。

     

     

     

     

     

      字符类型的输入输出

        printf和scanf   两个函数的意思是:printf => print + format 。   sacnf => scan + format .

        格式控制符为%c

          如:

            char c;

            scanf(“%c”,&c);

            printf(“%c”,c);

     

        putchar和getchar

          如:

            char c;

            c=getchar();

            putchar(c);

     

        ※无论是字符还是字符串常量,引号在屏幕上输入输出都不会显示。在编程时一定要加上,以区分其它类型的常量。

      字符运算

        ※C语言规定,所有的字符运算都是转成ASCII码的整数运算。

          如:

            ‘B’-‘A’ 相当于66-65=1

            ‘a’+1相当于97+1=98=’b’

            ‘9’+’9’ 相当于57+57=114=’r’

        ※既然字符型数据和整型数据可这么方便的转换,那么字符型数据也经常使用%d输出,用来得到字符的ASCII码序号。

        ※不可以对字符串进行类似的运算,如”b”-“a”是错误的,字符串运算必须通过函数,将在后面介绍

    // 9 _1 字符运算
    #include <stdio.h>
    
    void main()
    {
        int i1, i2;
        char c1, c2;
    
        //字符 + 整型 赋值给整型
        i1 = 'a' + 1;
        i2 = 'a' - 'b';
    
        printf("i1 = %d
     i2 = %d
    ", i1, i2);
    
    
        //整型 赋值给字符型
        c1 = 97;
        c2 = 48;
        printf("c1=%c
    c2=%c
    ", c1, c2);
    
        printf("整型输出字符型c1=%d
    c2=%d
    ", c1, c2);
    
        printf("字符型输出整型i1=%c
    i2=%c
    ", i1, i2);
    
    
    }

      用scanf输入字符

        ※每个%c只接收一个字符

          scanf(“%c%c%c”,&a,&b,&c);

          如果输入

            uvwxyz(回车)

            系统会自动一个一个地截取,使a=’u’,b=’v’,c=’w’

     

        ※在字符型变量上使用列宽控制时,第一个变量只会读取第一个字符,第二个变量会跳跃列宽后再读取一个字符

          scanf(“%3c%3c”,&c1,&c2);

          如果输入

            abcde(回车)

            c1为a,c2为d        因为是3个字符列宽,所以c2为d

        ※空格和回车都作为字符

          scanf(“%c%c%c”,&a,&b,&c);

            如果输入

              x□y□z                  □ 占位符代表回车和空格

              系统会自动使a=’x’,b=’□’,c=’y’,最右边的两个字符被丢弃

            如果输入

              x(回车)

              yz

              a、c与前面相同,但是b会赋于一个回车。也就是ASCII码的10。

  • 相关阅读:
    安装HDP时的报错信息
    K-近邻(KNN)算法
    linux复杂命令
    azkaban报错记录
    azkaban的安装部署
    安装centOS后要解决的问题
    AI之微信跳一跳
    Python的lambda
    关于在vim中的查找和替换
    cdh6.3.2 hue集成hbase
  • 原文地址:https://www.cnblogs.com/httpcc/p/15192156.html
Copyright © 2020-2023  润新知