为使电文保密,往往按其规律,将其转换成密码,收报人,再按约定的规律,将其译回原文。例如将字母A转变为E,a变成e,B变成F,b变成f,即变成其后第四个字母,用数组与指针编写程序
时间: 2023-11-28 22:04:40 浏览: 123
好的,下面是用C语言编写的将明文转换为凯撒密码的程序,其中使用了数组和指针:
```c
#include <stdio.h>
void encrypt(char *message, int key);
int main() {
char message[100];
int key;
printf("请输入明文:");
fgets(message, 100, stdin);
printf("请输入密钥:");
scanf("%d", &key);
encrypt(message, key);
printf("加密后的密文为:%s", message);
return 0;
}
void encrypt(char *message, int key) {
while (*message) {
if (*message >= 'A' && *message <= 'Z') {
*message = (*message - 'A' + key) % 26 + 'A';
} else if (*message >= 'a' && *message <= 'z') {
*message = (*message - 'a' + key) % 26 + 'a';
}
message++;
}
}
```
此程序中,我们定义了一个名为`encrypt`的函数,该函数将明文转换为凯撒密码。该函数使用了一个while循环,遍历明文中的每个字符,如果它是一个字母,则将其向后移动`key`个位置,然后将其存储回原始字符数组中。我们还定义了一个`main`函数,该函数接受用户输入明文和密钥,并将加密后的密文输出到屏幕上。
请注意,此处的加密算法并不是十分安全,因为它仅使用了一个简单的移位操作。在实际应用中,我们需要更加复杂的算法来确保通信的安全性。
阅读全文