用C语言编写一个程序将一个电文,已按下列规律译成译码: A→Z a→z B→Y b→y C→X c→x 即第一个字母变成第 26 个字母,第 i 个字母变成第(26-i+1)个字母。非字母字符不变。编写一个程序将密码译成原文,并输出密码和原文。
时间: 2024-02-09 15:11:44 浏览: 81
好的,以下是用 C 语言编写的程序,可以将给定的密码解密:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char ch, origin;
printf("请输入需要解密的电文:\n");
while ((ch = getchar()) != EOF) {
if (isalpha(ch)) { // 如果是字母
if (isupper(ch)) { // 如果是大写字母
origin = 'A' + 'Z' - ch; // 进行解密
} else { // 如果是小写字母
origin = 'a' + 'z' - ch; // 进行解密
}
} else { // 如果是非字母字符
origin = ch; // 不需要解密
}
putchar(origin); // 输出解密后的字符
}
return 0;
}
```
上面的程序中,我们使用了 `getchar()` 函数来逐个读取用户输入的字符,然后根据题目要求进行解密,并使用 `putchar()` 函数输出解密后的字符。需要注意的是,我们使用了 `isalpha()` 函数来判断当前字符是否为字母,使用了 `isupper()` 函数来判断是否为大写字母,以及 `islower()` 函数来判断是否为小写字母。
阅读全文