字符常量及字符变量(实例:大小写字母转换)

char字符类型(占用1个字节),本质上是整型(每个字符与ASCII码一一对应,文章尾部附上ASCII码对照表)。

字符:在C语言中引单号中的内容即为字符,字符只有一个。如:'A'、'\n'等。

  • 类'\n'、'\0'、'\t'等转义字符表面上看是两个字符,但其实是一个字符
  • 转义字符原始用 \数值 表示,但为方便记忆有些把 数值 换成 字母。比如上面的 \n、\t等
  • 转义字符 \数值 其中 数值是八进制的数值而非十进制的数值

字符串:是由一个字符或多个字符组成,在C语言中双引号中的内容即字符串。如:"hello"、"你好"

下面来个实例演示下:

#include <stdio.h>
/*
时间:2022-03-31 15:01
作者:sgbl888
功能:学习字符常量及字符变量
知识点:
    1、char类型本质是整型(每个字符与ASCII码一一对应)
    2、转义字符 \数值 表示,为了方便记忆把 数值用字母代替 \字母。如:\n表示换行 \0表示字符串结束。\数值 的数值是八进制非十进制
    3、字符串是由一个或多个字符组成的
    4、ASCII码 0至31是不可见字符
*/
int main()
{
    //字符用单引号,字符串用双引号
    char c1 = 'A';
    printf("c1 = %d c1=%c\n", c1, c1); //打印出 65和A,%d是按整型打印,%c是按字符打印
    //将A变成小写字母a
    c1 = c1 + 32; //本质是对数值运算,A对应的ASCII码是65,小写a对应的是97,相差32
    printf("c1 = %c\n", c1);
    //printf('H'); printf的第一个参数必须是字符串,不能是字符
    
    printf("--------\n");
    //用转义字符打印hello,可对照ASCII表(数值记得使用的是八进制而非十进制)
    printf("%c%c%c%c%c\n", '\150', '\145', '\154', '\154', '\157');
    //用转义字符结束字符串,\0表示字符串的结束
    printf("welcome\0to china\n");
    //测量char、一个字符、字符串占用多少字节
    printf("char use %hd Byte\n", sizeof(char)); //占用1个字节
    printf("一个字符占用 %hd 字节\n", sizeof c1); //占用1个字节
    printf("A字符占用 %hd 字节\n", sizeof('A')); //输出4,为什么呢?因为'A'实际是数值65,C语言默认数值是int类型。因此占用4个字节
    printf("helloworld字符串占 %hd 字节\n", sizeof("helloworld")); //helloworld本身只有10个字节,多出一个字节是\0字符串结束

    return 0;
}

实际应用实例:字母大小写转换

#include <stdio.h>
/*
时间:2022-03-31 15:38
作者:sgbl888
功能:输入一个字母,小写则转换成大写,大写则转换成小写
知识点:
    1、char加减运算,char本质是整型
    2、大写字母与小写字母数值相差32
*/

//自定义函数,功能是一个字符转换大小写
char toggleCase(char c)
{
    char result = 0;
    //如果是大写字母,转换成小写
    if(c>=65 && c<=90) {
        result = c + 32; 
    }
    //如果是小写字母,则转换成大写
    if(c>=97 && c<=122 ){
        result = c - 32;
    }
    //返回结果
    return result;
}

int main()
{
    char c = 'H';
    char res = toggleCase(c);
    //res = toggleCase('A');
    if(res!=0){
        printf("%c -> %c\n", c, res);
    }else{
        printf("错误的字母\n");
    }
}

 ASCII码对照表:

ASCII码对照表(含八进制)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值