凯撒密码c语言
时间: 2023-08-24 15:23:33 浏览: 193
下面是一个简单的 C 代码,用于加密和解密凯撒密码:
```c
#include <stdio.h>
void encrypt(char *message, int shift);
void decrypt(char *message, int shift);
int main() {
char message[100];
int shift;
printf("Enter a message to encrypt: ");
fgets(message, sizeof(message), stdin);
printf("Enter the shift value: ");
scanf("%d", &shift);
encrypt(message, shift);
printf("Encrypted message: %s\n", message);
decrypt(message, shift);
printf("Decrypted message: %s\n", message);
return 0;
}
void encrypt(char *message, int shift) {
char c;
int i;
for(i = 0; message[i] != '\0'; ++i) {
c = message[i];
if(c >= 'a' && c <= 'z') {
c = c + shift;
if(c > 'z') {
c = c - 'z' + 'a' - 1;
}
message[i] = c;
}
else if(c >= 'A' && c <= 'Z') {
c = c + shift;
if(c > 'Z') {
c = c - 'Z' + 'A' - 1;
}
message[i] = c;
}
}
}
void decrypt(char *message, int shift) {
char c;
int i;
for(i = 0; message[i] != '\0'; ++i) {
c = message[i];
if(c >= 'a' && c <= 'z') {
c = c - shift;
if(c < 'a') {
c = c + 'z' - 'a' + 1;
}
message[i] = c;
}
else if(c >= 'A' && c <= 'Z') {
c = c - shift;
if(c < 'A') {
c = c + 'Z' - 'A' + 1;
}
message[i] = c;
}
}
}
```
这个程序接受用户输入的一个消息和一个移位值(代表加密或解密的偏移量),并输出加密和解密后的消息。注意,该程序只能处理英文字母,对于其他字符将不做任何处理。
阅读全文