字符类型

<1>字符类型

(1)对char的了解:char既是一种整数,也是一种特殊的类型:字符.

——————原因:char是一种用单引号表示的字符字面量:'a','1';

注意:

1.' '也是一个字符;
2.scanf与printf中用%c输入输出;

<2>字符的输入输出

举例

(1)以一段代码为例分析1与'1'是否相等:

#include<stdio.h>

int main(){
char a;
char b;
a=1;
b='1';
if(a==b)
printf("相等");
else
printf("不相等");
return 0;
}
得出的结果为不相等,于是我们将代码进行调整,使其输出a,b的值 printf("a=%d",a);
printf("b=%d",b);
得出的结果为不相等a=1 b=49;

由此表明在计算机内部这个字符的值就是49,每一个字符在计算机内部都有一个整数值可以用来表达它.

(2)输入'1'这个字符给char c

1)scanf("%c",&c);c=1
2)scanf("%d",&c);c=49

以一段代码为例:输入类型为%c

#include<stdio.h>

int main(){
char c;
scanf("%c",&c);
printf("c=%d",c);
printf("c='%c'",c);
return 0;
}得出结果:输入1时,c=49 c='1';

再对代码进行修改,使输入的类型为%d

#include<stdio.h>

int main(){
int i;
char c;
scanf("%d",&i);————(出现i这个中间变量是因为scanf中只能处理int,不能处理char)
c=i;
printf("c=%d",c);
printf("c='%c'",c);
return 0;
}
继续输入1,结果为c=1c='',字符类型的c并没有成功输出;
第二次我们输入49,得出结果为c=49 c='1';
'1'的ASCII编码是49,所以当C= =49时,它代表'1',换句话来说'1'==49

<3>字符的混合输入

我们要注意例如scanf("%d %c",&a,&b);||canf("%d%c",&a,&b);在输入上存在的一些区别,这会影响我们输出的结果

<4>字符运算

(1)以一段代码为例:

#include<stdio.h>

int main(){
char c='A';
c++;
printf("%c\n",c);
return 0;
}得出的结果为B,

由此得出一个规律:

1.一个字符加一个数字得到ASCLL码表中那个数的后一位字符;
2.两个字符的减,得到它们在表中的距离

(2)大小写转换

  • 字母在ASCII表中是顺序排列的;
  • 大写字母和小写字母是分开排列的,并不在一起
  • 'a'-'A'可以得到两段之间的距离,于是a+'a'-'A'可以把一个大写字母变成小写字母;而a+'A'-'a'可以把一个小写字母变成大写字母
posted @   瑜阳  阅读(143)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示