一个文本串可用给定的字母映射表加密,怎么编程
例如,设字母映射表是abcdefghijklmnopqrstuvwxyzngzqtcobmuhelkpdawxfyivksj测试的字符串是encrypttkzwsdf...
例如,设字母映射表是
abcdefghijklmnopqrstuvwxyz
ngzqtcobmuhelkpdawxfyivksj
测试的字符串是encrypt
tkzwsdf 展开
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) {
display_en_by_str(str);
printf("Input a string(exit to quit): " );
scanf("%s", str);
}
}
#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) {
display_en_by_str(str);
printf("Input a string(exit to quit): " );
scanf("%s", str);
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询