凯撒加密c 语言 pta
时间: 2024-11-15 16:12:54 浏览: 117
凯撒加密(Caesar Cipher),也称为移位密码,是一种简单的替换式加密技术,它通过将明文中的每个字母按照固定的距离向后或向前移动来加密信息。在C语言中实现凯撒加密的基本步骤如下:
1. 定义一个固定的偏移量(如3,意味着A变B,B变C,依此类推)。
2. 用户输入明文和选择的偏移量。
3. 对明文中的每一个字符,如果是字母则按照字母表循环移位,非字母字符保持不变。
4. 输出加密后的密文。
下面是一个简单的C语言函数示例,用于对给定字符串进行凯撒加密:
```c
#include <stdio.h>
#include <ctype.h>
char caesar_cipher(char c, int shift) {
if (isalpha(c)) {
c = ((c - 'A' + shift) % 26) + 'A';
if (c > 'Z') c -= 26; // 超过Z后回到A
}
return c;
}
void encrypt_ciphertext(char *plaintext, int shift) {
for (int i = 0; plaintext[i] != '\0'; i++) {
plaintext[i] = caesar_cipher(plaintext[i], shift);
}
}
int main() {
char input[100];
printf("请输入明文并指定偏移量: ");
fgets(input, sizeof(input), stdin);
int shift;
scanf("%d", &shift);
input[strlen(input)-1] = '\0'; // 清除换行符
encrypt_ciphertext(input, shift);
printf("加密后的密文: %s\n", input);
return 0;
}
```
阅读全文