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\n i2 = %d\n", i1, i2);


    //整型 赋值给字符型
    c1 = 97;
    c2 = 48;
    printf("c1=%c\nc2=%c\n", c1, c2);

    printf("整型输出字符型c1=%d\nc2=%d\n", c1, c2);

    printf("字符型输出整型i1=%c\ni2=%c\n", 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。

 

posted @ 2021-08-27 00:13  httpcc  阅读(1187)  评论(0编辑  收藏  举报