#P5704. 【深基2.例6】字母转换
【深基2.例6】字母转换
【深基2.例6】字母转换
题目来源
洛谷 P5704
题目描述
输入一个小写字母,输出其对应的大写字母。例如输入 q[回车] 时,会输出 Q。
输入格式
输入一行,一个 ASCII 可见的小写字符。
输出格式
输出一行,对应的大写字符。
样例输入
q
样例输出
Q
提示
一、char 是什么:存「一个字符」的变量
char c = 'a'; // 字符常量用单引号,且只能有一个字符
char d = 'A';
char sp = ' '; // 一个空格也是字符
三种引号要分清:
| 写法 | 类型 | 例子 |
|---|---|---|
'a' |
字符(char) | 单个字符,单引号 |
"a" |
字符串(多个字符) | 双引号,末尾自带结束标记 |
a |
变量名 | 不加引号 |
二、读一个字符:%c
char c;
scanf("%c", &c); // 读一个字符,注意也要 &
printf("%c\n", c); // 用 %c 输出字符本身
三、字符的本质是数字(ASCII 编码)
计算机里没有「字母」,只有数字。每个字符都对应一个编号,叫 ASCII 码:
'a'= 97,'b'= 98,……'z'= 122'A'= 65,'B'= 66,……'Z'= 90'0'= 48,'1'= 49,……'9'= 57
所以 char 其实就是一个范围很小的整数。同一份数据,换个格式符就换个样子:
char c = 'a';
printf("%c\n", c); // a 按字符解释
printf("%d\n", c); // 97 按整数解释
记住大小关系:大写字母的编号比小写字母小 32('A' 65,'a' 97)。这个 32 就是本题「大小写转换」的钥匙。
四、常见错误
-
用双引号写字符:
char c = "a";编译不过。 -
单引号里塞多个字符:
'ab'不是 char。 -
输出用了
%d却以为会打印字母。 -
输入是一个字母,不是数字,所以变量要用
char,格式符用%c。 -
不要背 26 个字母的对照表:比较同一字母大小写的编号,找到那个固定差值,用它做加减。
-
算出新字母的编号后,用
%c输出,就会打印成字符。
自查:拿样例
q → Q验证;再试a和z,确认首尾字母都能正确转换。