题目描述:
一个文本串可用事先给定的字母映射表进行加密。例如,设字母映射表为:
a b c d e f g h i j k l m n o p q r s t u v w x y z
n g z q t c o b m u h e l k p d a w x f y i v r s j
则字符串"encrypt"被加密为"tkzwsdf"。编写一个程序exp4-4.cpp,将输入的文本串加密后输出,然后进行解密并输出。
题解:
字符串的查找过程。
代码如下:
#include<iostream>
#include<string.h>
#include<stdio.h>
#include<algorithm>
typedef long long ll;
char arr[100]= {"abcdefghijklmnopqrstuvwxyz"};
char brr[100]= {"nbzqtcobmuhelkpdawxfyivrsj"};
int main()
{
char crr[100],drr[100],err[100];
int i,j;
gets(crr);
printf("原文本为:\n");
puts(crr);
for(i=0; i<strlen(crr); i++)
{
for(j=0; j<strlen(arr); j++)
{
if(crr[i]==arr[j])
drr[i]=brr[j];
}
}
drr[i]='\0';
printf("加密文本为:\n");
puts(drr);
for(i=0; i<strlen(drr); i++)
{
for(j=0; j<strlen(brr); j++)
{
if(drr[i]==brr[j])
err[i]=arr[j];
}
}
err[i]='\0';
printf("解密文本为:\n");
puts(err);
return 0;
}