C语言文本加密,加密的规则设定为:A->E,B->F,...,W->A,X->B,Y->C,Z->Da->e,b->f,…,w->a,x->b,y->c,z->d
时间: 2023-08-07 07:20:41 浏览: 184
c语言之12位凯撒密码 (2).zip
好的,为了方便加密和解密,我们可以将加密规则保存在一个数组中,然后遍历文本进行加密。下面是一个简单的C语言文本加密程序:
```c
#include <stdio.h>
#include <string.h>
void encrypt(char* text) {
char mapping[26] = {'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'A', 'B', 'C', 'D'};
int i, j, len;
len = strlen(text);
for (i = 0; i < len; i++) {
if (text[i] >= 'A' && text[i] <= 'Z') {
j = text[i] - 'A';
text[i] = mapping[j];
} else if (text[i] >= 'a' && text[i] <= 'z') {
j = text[i] - 'a';
text[i] = mapping[j] + 32;
}
}
}
int main() {
char text[100];
printf("请输入要加密的文本:");
fgets(text, 100, stdin);
encrypt(text);
printf("加密后的文本为:%s\n", text);
return 0;
}
```
程序中定义了一个数组`mapping`,用于保存加密规则,然后遍历输入的文本,对其中的大写字母和小写字母进行加密。
注意,程序中使用了`fgets`函数读取输入文本,这是为了避免使用`scanf`函数时出现缓冲区溢出的问题。同时,输出加密后的文本时使用了`%s`格式化字符串,这是因为`text`数组中已经包含了空字符,所以不需要再添加。
阅读全文