/*
有一行电文,已按下面规律译成密码:
A->Z,B->Y,C->X,……
a->z,b->y,c->x,……
即第1个字母变成第26个字母,第i个字母变成第(26-i+1)个字母,
非字母符号不变。
要求编译程序将密码译回原文,并输出密码和原文。
*/
#include<stdio.h>
int main()
{
//注意:获取暗文
char sz [100] = {0}; //假设暗文的长度最多为100
int i;
gets(sz);
//解码:'A'+(26-(sz-'A')-1)
//只对字母进行解码
for (i = 0; sz[i] != '\0'; i++) {
//'A'~'Z'
if (sz[i] >= 'A' && sz[i] <= 'Z') {
sz[i] = 'A' + (26 - (sz[i] - 'A') - 1);
}
//'a'~'z'
if (sz[i] >= 'a' && sz[i] <= 'z') {
sz[i] = 'a' + (26 - (sz[i] - 'a') - 1);
}
}
printf("解码的结果为:%s\n", sz);
return 0;
}
C语言——电文密码
最新推荐文章于 2023-12-14 10:46:22 发布