任务描述
本关任务:获取输入的字符,并将其字符及它的 ASCII 码值输出。
相关知识
ASCII码
什么是 ASSCII 码
在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示 1 和 0 )。
例如像 a 、 b 、 c 、 d 这样的 52 个字母(包括大写)、以及 0 、 1 等数字还有一些常用的符号(例如 * 、 # 、 @ 等)在计算机中存储时也要使用二进制数来表示,而具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫编码)。
而大家如果要想互相通信而不造成混乱,那么大家就必须使用相同的编码规则,于是美国有关的标准化组织就出台了 ASCII 编码,统一规定了上述常用符号用哪些二进制数来表示。
ASCII的表达方式
ASCII 码使用指定的 7 位或 8 位二进制数组合来表示 128 或 256 种可能的字符。标准 ASCII 码也叫基础 ASCII 码,使用 7 位二进制数(剩下的 1 位二进制为 0 )来表示所有的大写和小写字母,数字 0 到 9 、标点符号, 以及在美式英语中使用的特殊控制字符。
在 C 语言中,每一个字符都有它自己的 ASCII 码,例如 A 的 ASCII 码为 65:
int main()
{
char i='A';
printf("%d",i);
return 0;
}
输出结果:65
转义字符
转义字符是 C 语言中表示字符的一种特殊形式。转义字符以反斜 \ 开头,后面跟一个字符或八进制或十六进制数表示。转义字符具有特定的含义,不同于字符原有的意义,故称转义字符。
通常使用转义字符表示 ASCII 码字符集中不可打印的控制字符和特定功能的字符,如用于表示字符常量的单撇号('
)、双撇号("
)和反斜杠(\
)等。
例如如果要输出这个句子"\ is called 'backslash'."
,则代码编写为:
printf("\"\\ is called \'backslash\'.\""); // 或者
printf("\"\\ is called 'backslash'.\"");
注意:在字符串中,无论写
\'
还是'
,输出都是一样的。但是,在给字符变量赋值时,一定要写\'
。
获取单个字符的输入
C
语言中获取单个字符的输入有两个函数,使用如下:
scanf()
函数
char a;
scanf("%c
, &a);
getchar()
函数
char a;
a = getchar();
简单的描述一下这两个函数的区别:
- 函数格式不同
scanf()
函数是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量中;而getchar()
函数是键盘输入函数,其功能是从键盘上输入一个字符。
- 读取方式不同
scanf()
函数在读取数字时会跳过空格、制表符和换行符。
getchar()
函数只能输入字符型,输入时遇到回车键才从缓冲区依次提取字符。
- 结束输入的方式不同
scanf()
函数以空格、Enter 、Tab 结束一次输入,不接受空格符。
getchar()
函数以 Enter 结束输入(空格不结束),接受空格符。
编程要求
在右侧编辑器中的Begin-End
之间补充代码,程序接收一个字符型数据的输入,最终输出字符和其对应的 ASCII 码。
测试说明
平台会对你编写的代码进行测试,比对你输出的数值与实际正确数值,只有所有数据全部计算正确才能通过测试:
测试输入:A
预期输出:“The ASCII of 'A' is 65”.
测试输入:a
预期输出:“The ASCII of 'a' is 97”.
#include <stdio.h>
//定义main函数
int main()
{
//请在此添加‘输入一个字符,按规定格式输出该字符ASCII码’的代码
/********** Begin **********/
char c;
scanf("%c",&c);
printf("\"The ASCII of '%c' is %d\".",c,c);
/********** End **********/
return 0;
}