用c语言实现凯撒密码。要求:1.由用户输入明文和位移量 2.可以进行解密操作
时间: 2024-06-03 11:07:58 浏览: 93
凯撒密码用c语言来实现
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LEN 100
// 加密函数
void encrypt(char *str, int shift) {
int len = strlen(str);
for (int i = 0; i < len; i++) {
if (str[i] >= 'A' && str[i] <= 'Z') {
str[i] = (str[i] - 'A' + shift) % 26 + 'A';
} else if (str[i] >= 'a' && str[i] <= 'z') {
str[i] = (str[i] - 'a' + shift) % 26 + 'a';
}
}
}
// 解密函数
void decrypt(char *str, int shift) {
encrypt(str, 26 - shift);
}
int main() {
char plaintext[MAX_LEN];
int shift;
// 输入明文和位移量
printf("请输入明文:");
fgets(plaintext, MAX_LEN, stdin);
printf("请输入位移量:");
scanf("%d", &shift);
// 加密明文
encrypt(plaintext, shift);
printf("加密后的密文为:%s\n", plaintext);
// 解密密文
decrypt(plaintext, shift);
printf("解密后的明文为:%s\n", plaintext);
return 0;
}
阅读全文