c程序,有一行电文,已按下面规律译成密码:A →Z a →zB →Y b →yC →X c →x..... .即第1个字母变成第26个字母,第i个字母变成第(26-i+1)个字母,非字母字符不变。要求编程序将密码译回原文,并输出密码和原文。
时间: 2024-12-20 20:27:57 浏览: 19
在C语言中,你可以通过创建一个函数来实现这个翻译过程。这个函数会接收一个字符串作为输入,然后遍历每个字符,根据给定的规则将大写字母、小写字母替换回原文。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
// 转换函数,将加密后的字母还原
char decrypt_char(char encrypted_char) {
if ('A' <= encrypted_char && encrypted_char <= 'Z') { // 大写字母
return encrypted_char - 'A' + 26; // 变为原来的字母位置
} else if ('a' <= encrypted_char && encrypted_char <= 'z') { // 小写字母
return encrypted_char - 'a' + 26;
}
// 非字母字符保持不变
return encrypted_char;
}
void decrypt_message(const char* encrypted_msg) {
int len = strlen(encrypted_msg);
for (int i = 0; i < len; ++i) {
printf("%c", decrypt_char(encrypted_msg[i])); // 输出转换后的字符
}
printf("\n");
}
int main() {
const char* encrypted电文 = "WORLDB";
printf("Encrypted message: %s\n", encrypted电文);
decrypt_message(encrypted电文);
return 0;
}
```
当你运行这段代码,它会输出解密后的原始电文。
阅读全文