用c语言写凯撒密码的程序
时间: 2024-03-09 22:25:20 浏览: 32
以下是一个简单的用C语言实现凯撒密码的程序:
```c
#include <stdio.h>
// 凯撒密码加密函数
void encrypt(char* message, int key) {
char ch;
int i;
for(i = 0; message[i] != '\0'; ++i){
ch = message[i];
if(ch >= 'a' && ch <= 'z'){
ch = ch + key;
if(ch > 'z'){
ch = ch - 'z' + 'a' - 1;
}
message[i] = ch;
}
else if(ch >= 'A' && ch <= 'Z'){
ch = ch + key;
if(ch > 'Z'){
ch = ch - 'Z' + 'A' - 1;
}
message[i] = ch;
}
}
}
// 凯撒密码解密函数
void decrypt(char* message, int key) {
char ch;
int i;
for(i = 0; message[i] != '\0'; ++i){
ch = message[i];
if(ch >= 'a' && ch <= 'z'){
ch = ch - key;
if(ch < 'a'){
ch = ch + 'z' - 'a' + 1;
}
message[i] = ch;
}
else if(ch >= 'A' && ch <= 'Z'){
ch = ch - key;
if(ch < 'A'){
ch = ch + 'Z' - 'A' + 1;
}
message[i] = ch;
}
}
}
int main() {
char message[100];
int key;
printf("请输入要加密或解密的消息:");
fgets(message, 100, stdin);
printf("请输入密钥:");
scanf("%d", &key);
encrypt(message, key);
printf("加密后的消息为:%s\n", message);
decrypt(message, key);
printf("解密后的消息为:%s\n", message);
return 0;
}
```
该程序中实现了 `encrypt()` 和 `decrypt()` 两个函数,用于对输入的消息进行加密和解密。在主函数中,先用 `fgets()` 函数获取用户输入的消息,再用 `scanf()` 函数获取用户输入的密钥,最后调用 `encrypt()` 和 `decrypt()` 函数分别对消息进行加密和解密,并输出结果。