c语音中有一行电文,已按下面规律编译成密码: A->Z a->z B->Y b->y C->X c->x 要求编程序将密码译回原文,并输出密码和原文。
时间: 2024-10-08 21:25:38 浏览: 68
在 C 语言中,你可以通过创建一个简单的字符映射表来实现这个密码解密的过程。你可以使用两个数组,一个存储加密后的字母,另一个存储对应的解密后的字母。下面是一个简单的示例程序:
```c
#include <stdio.h>
#include <string.h>
// 加密和解密的字符映射表
char encrypted[] = {'A', 'B', 'C', ... 'Z', 'a', 'b', 'c', ..., 'z'};
char decrypted[] = {'Z', 'Y', 'X', ..., 'A', 'z', 'y', 'x', ..., 'a'};
// 解密函数
char decrypt(char encrypted_char) {
if (encrypted_char >= 'A' && encrypted_char <= 'Z') {
return decrypted[encrypted_char - 'A'];
} else if (encrypted_char >= 'a' && encrypted_char <= 'z') {
return decrypted[encrypted_char - 'a' + 26];
}
// 如果输入的不是字母,则保持原样返回
return encrypted_char;
}
int main() {
char input[100]; // 输入的密码字符串
fgets(input, sizeof(input), stdin); // 从标准输入读取密码
// 去掉末尾的换行符
input[strcspn(input, "\n")] = '\0';
// 解密并打印原文
char original[100];
for (size_t i = 0; input[i] != '\0'; ++i) {
original[i] = decrypt(input[i]);
}
original[strcspn(original, "\n")] = '\0';
printf("Original text: %s\n", original);
return 0;
}
```
在这个程序中,`decrypt()` 函数会根据给定的加密字符查找对应的解密字符。`main()` 中,我们从用户那里获取输入,然后逐个字符解密并输出原始文本。
阅读全文