实验7-3-4 字符串替换 (15分)
本题要求编写程序,将给定字符串中的大写英文字母按以下对应规则替换:
原字母 对应字母
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>
//2020/7/15
//如果对您有帮助的话还请点个赞
int main (void) {
int i;
char a[90];
//这里要注意下,字符串长度定义时
//最好超出提示 输入的最大长度
//不然有概率被阴
int j,k;
for (i = 0;i < 90;i++){
scanf ("%c",&a[i]);
if (a[i] == '\n') {
a[i]='0';
// 完成替换,字符串要以'0' 结尾
j=i;
break;
}
}
//完成输入
for (i = 0;i < j;i++){
if (a[i] >= 'A'&&a[i] <= 'Z'){
//这里说明一下,所谓的转换其实就是AS码的转换
a[i]='Z'-(a[i]-'A');
// 所以上面这行可以理解为
//Z的AS码减去元素a[i]AS码大于A的部分
//可不就是自Z开始转换吗
}
}
//然后遍历输出
for (i = 0;i < j;i++){
printf ("%c",a[i]);
}
return 0;
}
//如果对您有帮助的话还请点个赞