英文字母替换加密(大小写转换+后移1位)c语言写
时间: 2024-12-22 19:13:33 浏览: 15
英文字母替换加密(大小写转换+后移一位),也称为凯撒密码的一种简单变体,常用于教学中的基本加密示例。在C语言中实现这个加密算法,可以按照以下步骤:
```c
#include <stdio.h>
#include <ctype.h>
// 加密函数,将字母(大写或小写)转换并后移一位
char encrypt(char c) {
if (islower(c)) { // 如果是小写字母
return ((c - 'a' + 1) % 26) + 'a'; // 后移1位,并保持小写
} else if (isupper(c)) { // 如果是大写字母
return ((c - 'A' + 1) % 26) + 'A'; // 同理,但处理大写
} else { // 非字母字符不变
return c;
}
}
int main() {
char input[100], encrypted[100];
printf("请输入明文:");
fgets(input, sizeof(input), stdin); // 获取输入
for (int i = 0; i < strlen(input); i++) {
encrypted[i] = encrypt(input[i]); // 对每个字符加密
}
encrypted[strlen(input)] = '\0'; // 结束字符串
printf("加密后的密文:%s\n", encrypted);
return 0;
}
```
在这个程序中,用户会先被提示输入明文,然后`encrypt()`函数会遍历输入的每个字符,如果是字母则按指定规则转换和移动,非字母字符保持原样。最后输出加密后的结果。
阅读全文