本题要求编写程序,将给定字符串中的大写英文字母按以下对应规则替换:
原字母 | 对应字母 |
---|---|
A | Z |
B | Y |
C | X |
D | W |
… | … |
X | C |
Y | B |
Z | A |
输入格式:
输入在一行中给出一个不超过80个字符、并以回车结束的字符串。
输出格式:
输出在一行中给出替换完成后的字符串。
输入样例:
Only the 11 CAPItaL LeTtERS are replaced.
输出样例:
Lnly the 11 XZKRtaO OeGtVIH are replaced.
解题过程
看上去比较难搞,如果搞若干switch那肯定得看瞎
不如再来一个数组,存储倒序的字母
#define _CRT_SECURE_NO_WARNINGS
#include <math.h>
#include <stdio.h>
#include <string.h>int main() {char s[114];char a[26],b[26],c = 'A';for (int i = 0; i < 26; i++) {//赋值字符数组a[i] = c + i;b[25 - i] = c + i;}int n;fgets(s, 114, stdin);n = strlen(s);for (int i = 0; i < n-1; i++) {if (s[i] >= 'A' && s[i] <= 'Z')for (int j = 0; j < 26; j++) {if (s[i] == a[j]) {//寻找对应字符下标并转换s[i] = b[j];break;}}printf("%c", s[i]);}
}