c语言凯撒密码输入一个字母明文输出一个密文
时间: 2024-10-11 15:04:11 浏览: 63
凯撒密码是一种简单的替换加密技术,它通过将字母表中的每个字符向后移动固定数量的位置来进行加密。在C语言中,你可以编写一个函数来实现这个过程。下面是一个基础的示例,假设移动量为3:
```c
#include <stdio.h>
#include <ctype.h>
char caesar_cipher(char char_to_encrypt, int shift) {
if (isalpha(char_to_encrypt)) { // 检查字符是否为字母
if (islower(char_to_encrypt)) { // 小写字母
return ((char_to_encrypt - 'a' + shift) % 26) + 'a';
} else { // 大写字母
return ((char_to_encrypt - 'A' + shift) % 26) + 'A';
}
}
return char_to_encrypt; // 非字母字符保持不变
}
int main() {
int shift;
printf("请输入移位量(0-25): ");
scanf("%d", &shift);
char input_char;
printf("请输入明文字符: ");
scanf(" %c", &input_char); // 使用 " %c" 避免直接读取空格
char encrypted_char = caesar_cipher(input_char, shift);
printf("密文字符是: %c\n", encrypted_char);
return 0;
}
```
在这个程序中,用户会被提示输入移位量和明文字符。然后,`caesar_cipher` 函数会根据给定的移位对字母进行加密,并返回密文。
阅读全文