字符类型
<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'可以把一个小写字母变成大写字母
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了