本题要求编写程序,将给定字符串中的大写英文字母按以下对应规则替换:
原字母 对应字母
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>#include<string.h>#define N 80//思路:设置两个数组,一个存储输入的字符,一个存储处理后的字符,由于需要变换的两个// 大写字母之和是一个常数,根据此关系编写程序即可。intmain(void){int i, cnt=0;char ch;char str1[N];//存储输入的字符char str2[N];//存储处理后的字符
ch =getchar();for(i =0; ch !='\n'; i++){
str1[i]= ch;
cnt++;
ch =getchar();}for(i =0; i < cnt; i++){if(str1[i]>='A'&& str1[i]<='Z'){
str2[i]='A'+'Z'- str1[i];//相互替换的字符之和是不变常数}else{
str2[i]= str1[i];}}for(i =0; i < cnt; i++)//打印结果{printf("%c",str2[i]);}return0;}