题目描述
有一行电文,已按如下规律译成密码:
A-->Z a-->z
B-->Y b-->y
C-->X c-->x
...... ......
即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母,非字母字符不变。要求根据密码译回原文,并输出。
输入
输入一行密文
输出
解密后的原文,单独占一行。
样例输入
ZYX123zyx
样例输出
ABC123abc#include <stdio.h> #include <string.h> int main(){ char str[100]; int l; gets(str); l = strlen(str); for(int i=0; i<l; i++){ if(((int)str[i])>=65 && ((int)str[i]<=90)){ str[i] = (char)(155-(int)str[i]); }else if(((int)str[i])>=97 && ((int)str[i]<=122)){ str[i] = (char)(219-(int)str[i]); } } puts(str); }
1、ASCII码A(65)—Z(90),a(97)—z(122);小写字母比相应大写字母大32.
2、要求某个字符的ascii码,可用强制类型转换(int)c,求某个ascii码对应的字符,对应为(char)n.
3、gets()和puts()都会自动在字符串末尾添加结束符‘\0’