一个文本串可用给定的字母映射表加密,怎么编程

来源:百度知道 编辑:UC知道 时间:2024/09/25 23:23:00
例如,设字母映射表是
abcdefghijklmnopqrstuvwxyz
ngzqtcobmuhelkpdawxfyivksj
测试的字符串是encrypt
tkzwsdf

#include <stdio.h>
#include <stdlib.h>

static char en[27] = "ngzqtcobmuhelkpdawxfyivrsj";//加密表,产生解密表时根据最后的0来判断,所以为27,下面为26
static char de[26];//解密表

// 根据已有加密映射表,产生解密映射表
void get_des() {
char *p = en;
do {
de[*p - 'a'] = 'a' + p - en;
} while (*++p != 0);
}
// 打印原字符串和加密后的字符串
void display_en_by_str(char *ptr) {
printf("%32s -> ", ptr);
while (*ptr != 0) {
putchar(en[*ptr++-'a']);
}
printf("\n");
}

int main()
{
char str[256];

get_des();
printf("en: %s\nde: %s\n", en, de);

printf("Input a string(exit to quit): " );
scanf("%s", str);
while (strcmp(str, "exit") != 0) {