Only the 11 CAPItaL LeTtERS are replaced.
#include <stdio.h>
#include <string.h>
//本题要求编写程序,将给定字符串中的大写英文字母按以下对应规则替换:
//原字母 对应字母
///A Z
//B Y
//C X
//D W
//… …
//X C
//Y B
//Z A
// 规律 大写字母之和是一个常数,根据此关系编写程序即可。
int main()
{ //输入在一行中给出一个不超过80个字符、并以回车结束的字符串。
char a[80], b[26]; //b数组储存26个大写字母
int d, i, j, k, p;
i = 0;
while ((d = getchar()) != '\n')
{
a[i] = (char)d;
i++;
}
a[i] = '\0';
p = i;
int l = 65;
for (i = 0; i < 26; i++)
{
b[i] = l;
l++;
}
//输出在一行中给出替换完成后的字符串。
k = 0;
for (j = 0; j < p; j++)
{ //,,学的有点傻 i 在for循环中的反复使用 会导致i的数变化 以前不知道为什么 总以为不改变
for (i = 0; i < 26; i++)
{ //这里的P保留了最先的i的值
if (a[j] >= 'A' && a[j] <= 'Z' && (a[j] + b[i]) == 155)
{
a[j] = b[i];
break; //善待break 哈哈哈 跳出最接近的循环
}
}
}
for (j = 0; j < p; j++)
{
printf("%c", a[j]);
}
return 0;
}