上一章,我们稍微学习了一个新的头文件<string.h>,下面我们就要运用一下。
设计一个加密与解密的算法,对一个指定的字符串加密后,再利用解密函数对密文进行解密。
加密的方式是将字符串的每个字符加上它在字符串中的位置和一个偏移值5.
定义一个明文字符数组 char text[10000];
定义一个密文字符数组 char cryptograph[100000];
若用户输出1,则为加密明文;
若用户输出2,则为解密密文;
若用户输出3,则为退出系统。
#include<stdio.h>
#include<string.h>
int main()
{
int result=1;
int i;
int count;
char text[100000]={'\0'};
char cryptograph[100000]={0};
while(1)
{
if(result==1)
{
printf("输入明文密码:");
scanf("%s",&text);
count=strlen(text);
for(i=0;i<count;i++)
{
cryptograph[i]=text[i]+i+5;
}
cryptograph[i]='\0';
printf("加密后的密文为:%s\n",cryptograph);
}
else if(result==2)
{
count=strlen(text);
for(i=0;i<count;i++)
{
text[i]=cryptograph[i]-i-5;
}
text[i]='\0';
printf("解密后的明文为:%s",text);
}
else if(result==3)
{
break;
}
else
{
printf("输出命令符:");
}
printf("输入1加密新的明文,输入2对刚加密的密文进行解密,输入3退出系统:\n");
printf("请输入命令符:");
scanf("%d",&result);
}
return 0;
}