C++基础09 字符类型和ASCII码
- C++基础
- 2024-06-05
- 1379热度
- 2评论
字符
如果我们想存字母,例如输入k,能输出k,就需要声明字符类型的变量来存放。
字符是指计算机中使用的字母、数字和符号。例如我们26个大小写字母、数字0~9、和一些特殊的符号“#”、“@”、“+”、“-”等等。
字符类型
字符类型(char)是一种数据类型,和实数类型、整型类似,不同的是一个字符类型变量可存储的内容为单个字符。
字符类型的声明
定义格式:char a; // (数据类型) (变量名)
赋值:a = 'k'; //将字符k赋值给变量a
输入:cin >> a;
输出:cout << a;
注意事项
- 字符类型变量的输入输出均和整数类型、实数类型一致。
- 输入的是字符,但是赋值的时候不能忘记字符两边的单引号。
训练:巧克力上的字母
小知爸爸出差回来,给小知带回来一些美味的巧克力,细心的小知发现,每块巧克力上面都有一个字符刻在上面,他想把巧克力上的字符记录下来,经过一番操作,他记录了两个字符。
【输入描述】两个字符
【输出描述】两个字符,空格隔开
【样例输入】l v
【样例输出】l v
巧克力上的字母参考代码
#include <iostream>
using namespace std;
int main( )
{
char a,b;
cin>>a>>b;
cout<<a<<" "<<b;
return 0;
}
ASCII码
计算机其实是不能直接识别字符的,因为计算机只认识数字。
因此,字符不能直接存储在计算机中,但是可以利用ASCII码(数字)来存储字符。简单的来说,ASCII码就相当于字符对应的数字编号,只要知道编号,就知道是哪个字符了。
举例说明ASCII码
举个小例子,在学校里,每个学生的个人信息都是通过学号来记录的,知道了学号,就知道是哪个学生了,ASCII码就类似于学生学号。
常用字符的ASCII码
ASCII码实例说明
例如:
char a= 'k';
这里字符类型变量a存储的就是代表字符k的ASCII码107,而不是直接存储的字符k。
ASCII的输出
字符是char类型,而ASCII码是int类型
要输出ASCII码,需要把char类型转化成int类型
方法一:
char a= 'k' ;
int x;
x=a;
cout<<x;
方法二:
char a= 'k' ;
cout<<(int)a;
训练:字符对应的ASCII码
小知已经记录完了巧克力上的字符,他还想知道字符所对应的ASCII码,现在他拿出两个字符,请你输出它们所对应的ASCII码的值。
【输入描述】两个字符
【输出描述】一行,两个字符所对应的ASCII码的值,空格隔开
【样例输入】m 3
【样例输出】109 51
字符对应的ASCII码参考代码
#include <iostream>
using namespace std;
int main( )
{
char a,b;
cin >> a >> b;
cout << int(a) <<" "<<int(b);
return 0;
}
字符的输出
ASCII码是int类型,而字符是char类型
要输出字符,需要把int类型转化成char类型
方法一:
int a=107;
char b;
b=a;
cout<<b;
方法二:
int a=107;
cout<<(char)a;
训练:转校生的姓名
班级里新来了一个转校生,小知想知道他叫什么名字,但是转校生只告诉他两个数字,让他猜这个转校生的姓名的首字母,如果猜对了,就送小知一份小礼物,已知他的姓名只有两个汉字。
【输入描述】两个数字
【输出描述】一行,两个数字所对应的字母,空格隔开
【样例输入】108 99
【样例输出】l c
转校生的姓名参考代码
#include <iostream>
using namespace std;
int main( )
{
int a,b;
cin >> a >> b;
cout << char(a) <<" "<<char(b);
return 0;
}
字符的算术运算
字符类型是可以进行算术运算的,计算机进行计算的时候会自动对字符所对应的ASCII码的值进行相应的运算。
字符的算术运算的例子
例1:
char b= 'a';
cout<<b+2;
计算的是字符a的ASCII码与2相加的值,所以结果是99。
例1:
cout<< 'b' - 'B';
计算的是两个字符的ASCII码相减的值,结果是32。
训练:补习班的座位
小知和A同学想进一步提升自己的成绩,于是一起报了同一个培优班,培优班开课之前每位学生都分配了一个字符,并告诉学生通过这个字符能够找到座位,但是来到班级之后,发现座位上都是数字,老师告诉他们,数字是字符对应的ASCII码,需要解密找到自己座位,小知想找到两人座位,并想知道他的座位号比A同学大多少。
【输入描述】两个字符
【输出描述】输出有两行,第一行为两个字母所对应的ASCII码,以空格隔开;第二行为第一个字符比第二个字符大了多少。
【样例输入】
b a
【样例输出】
98 97
1
补习班的座位参考代码
#include <iostream>
using namespace std;
int main( )
{
char a,b;
cin>>a>>b;
cout<<(int)a<<" "<<(int)b<<endl;
cout<<a-b;
return 0;
}
ASCII码,标题笔误了
谢谢提醒~