版权声明:本文为博主原创文章,未经博主允许不得转载。如需转载,请与博主联系。 https://blog.csdn.net/qq_31790997/article/details/90737857
小韦同学@神犇营-my0028-输出相邻字母
题目:
描述
英文的二十六个字母大家都知道吧?现在请你根据以下要求写一个程序:
输入一个字母,输出自己,并且输出跟这个字母相邻的字母,并且要按原来顺序排列。
如:
输入:B
输出:ABC
或者:
输入:b
输出:abc
输入保证合法,不会输入 a, A, z 和 Z。
输入
输入一个字母。
输出
按顺序输出它前面一个字母,它自己和它后面一个字母。中间没有空格。
输入样例
B
输出样例
ABC
题解:
破题:
输入一个字母,输出它的前一个字母,它自己,它的后一个字母,之间没有空格。
思路:
因为字符(包括字母)在计算机中是转成 ASCII 码进行存储,本质上是整数,所以可以运算。而大写字母的 ASCII 码相对大小和字母的相对顺序是一致的,比如 B 的ASCII 码是 66,而 A 的 ASCII 码是 65,C 的 ASCII 码是 67。所以对于一个字母而言(除了 a, z, A, Z 外),只要 ASCII 码减 1 即可得到前一个字母,ASCII 码加 1 即可得到后一个字母。
先定义一个字符型的变量,用来存储输入的字母,并且输入这个变量:
char c; // 定义一个字符(char)型变量c
cin >> c; // 输入变量c
做计算,并且输出:
// 输出变量c的前一个字母,c,和 c的后一个字母
// 字符变量c减1得到的是数字,要用char作强制类型转换,c加1也是一样的
cout << char(c -1) << c << char(c + 1) << endl;
或者可以再定义两个字符型的变量,将运算结果存在变量中,再一起输出来:
char c1 = c - 1; // c 的前一个字母
char c2 = c + 1; // c 的后一个字母
cout << c1 << c << c2;
完整代码:
#include <bits/stdc++.h>
using namespace std;
int main() {
char c; // 定义一个字符(char)型变量c
cin >> c; // 输入变量c
// 输出变量c的前一个字母,c,和c的后一个字母
// 字符变量c减1得到的是数字,要用char作强制类型转换,c加1也是一样的
cout << char(c -1) << c << char(c + 1);
return 0;
}
或者
#include <bits/stdc++.h>
using namespace std;
int main() {
char c; // 定义一个字符(char)型变量c
cin >> c; // 输入变量c
char c1 = c - 1; // c 的前一个字母
char c2 = c + 1; // c 的后一个字母
cout << c1 << c << c2;
return 0;
}