把电文按照下列规律译成密码: A - Z a - z B → Y b - y C - X c - x ...电文如果不是字母,内容不变。用C语言解决问题
时间: 2024-11-23 20:39:07 浏览: 37
在C语言中解决这个问题,我们可以创建一个简单的加密函数,它会遍历输入字符串并替换字母。这里是一个简单的示例:
```c
#include <stdio.h>
#include <ctype.h> // 使用ctype函数处理字符
// 定义字母映射表
char alphabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
char encrypted_alphabet[] = "BCDFGHJKLMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz";
// 加密函数
char encrypt_char(char ch) {
if (isalpha(ch)) { // 检查字符是否是字母
int index = tolower(ch) - 'a'; // 转换为小写并计算索引
return encrypted_alphabet[index]; // 返回对应的新字母
}
return ch; // 非字母字符保持不变
}
void encode_message(const char *message) {
for (int i = 0; message[i] != '\0'; ++i) {
printf("%c", encrypt_char(message[i]));
}
}
int main() {
char input[100];
printf("请输入需要加密的电文: ");
fgets(input, sizeof(input), stdin); // 从用户输入读取
input[strcspn(input, "\n")] = '\0'; // 去除行尾的换行符
encode_message(input);
printf("\n加密后的电文: \n");
return 0;
}
```
这个程序首先定义了两个字符数组,一个用于原字母,另一个用于加密后的字母。`encrypt_char`函数会检查输入字符是否是字母,如果是,则根据字母顺序找到对应的加密字符;非字母字符则保持不变。`encode_message`函数对整个输入字符串进行加密,并打印结果。
运行此程序,输入你想要加密的文本,就会得到按照指定规则加密后的电文。
阅读全文