本题要求编写程序,将给定字符串中的大写英文字母按以下对应规则替换:
原字母 | 对应字母 |
---|---|
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.
结尾无空行
解:
#include<stdio.h>
int main(void)
{
char a[81]={'\0'};
//为了80个字符留一个多的填\0
char ch[53];
for(int i = 0;i<26;i++)
{
ch[i]=65+i;
}
for(int i = 26,j = 25;i<52;i++,j--)
{
ch[i]=65 + j;
}
//初始化字母表
for(int i = 0;i<80;i++)
{
scanf("%c",&a[i]);
if(a[i]=='\n')
{
a[i]=='\0';
//方便输出
break;
}
}
for(int i = 0;a[i]!='\0';i++)
{
if(a[i]>=65 && a[i]<=90)
{
int j = 0;
while(a[i]!=ch[j]){
j++;
}
a[i]=ch[j+26];
//根据字母表转化
}
}
printf("%s",a);
}