codeup之解密
Description
有一行電文,已按如下規律譯成密碼:
A–>Z a–>z
B–>Y b–>y
C–>X c–>x
… …
即第一個字母變成第26個字母,第i個字母變成第(26-i+1)個字母,非字母字符不變。要求根據密碼譯回原文,并輸出。
Input
輸入一行密文
Output
解密后的原文,單獨占一行。
Sample Input Copy
ZYX123zyx
Sample Output Copy
ABC123abc
idea
- ASCII碼值
“A”到“Z”的ASCII碼值分別為65到90
“a”到“z”的ASCII碼值分別為97到到122 - 以小寫字母為例
str[i] = 26 - (str[i] - 96) + 1 + 96 - 注意因為使用了gets()函數,提交時記得選C語言,否則codeup會報編譯錯誤
solution
#include <stdio.h>
#include <string.h>
int main(){
char str[10];
gets(str);
for(int i = 0; i < strlen(str); i++){
if(str[i] >= 'a' && str[i] <= 'z'){
str[i] = 219 - str[i];
}
else if(str[i] >= 'A' && str[i] <= 'Z'){
str[i] = 155 - str[i];
}
}
printf("%s", str);
return 0;
}
總結
- 上一篇: 为什么阿里的dubbo注册中心要放弃zo
- 下一篇: 2.7K star!这个汉字工具库让中文