#include <stdio.h>
#include <string.h>
void caesarEncrypt(char* plaintext, int key) {
int i = 0;
while (plaintext[i] != '\0') {
if (plaintext[i] >= 'a' && plaintext[i] <= 'z') {
plaintext[i] = (plaintext[i] - 'a' + key) % 26 + 'a';
} else if (plaintext[i] >= 'A' && plaintext[i] <= 'Z') {
plaintext[i] = (plaintext[i] - 'A' + key) % 26 + 'A';
}
i++;
}
}
void caesarDecrypt(char* ciphertext, int key) {
int i = 0;
while (ciphertext[i] != '\0') {
if (ciphertext[i] >= 'a' && ciphertext[i] <= 'z') {
ciphertext[i] = (ciphertext[i] - 'a' - key + 26) % 26 + 'a';
} else if (ciphertext[i] >= 'A' && ciphertext[i] <= 'Z') {
ciphertext[i] = (ciphertext[i] - 'A' - key + 26) % 26 + 'A';
}
i++;
}
}
int main() {
char plaintext[100];
int key;-
printf("请输入明文: ");
fgets(plaintext, sizeof(plaintext), stdin);
printf("请输入密钥: ");
scanf("%d", &key);
plaintext[strcspn(plaintext, "\n")] = '\0';
caesarEncrypt(plaintext, key);
printf("加密后的密文: %s\n", plaintext);
caesarDecrypt(plaintext, key);
printf("解密后的明文: %s\n", plaintext);
return 0;
}