做网站网络合同,营销技巧和营销方法培训,网站设计公司种类,基于微信公众号开发【问题描述】有一种加密方法为#xff1a;其使用一个字母串#xff08;可以含重复字母#xff0c;字母个数不超过50#xff09;作为密钥。假定密钥单词串为feather#xff0c;则先去掉密钥单词中的重复字母得到单词串feathr#xff0c;然后再将字母表中的其它字母以反序追…【问题描述】有一种加密方法为其使用一个字母串可以含重复字母字母个数不超过50作为密钥。假定密钥单词串为feather则先去掉密钥单词中的重复字母得到单词串feathr然后再将字母表中的其它字母以反序追加到feathr的后面 f e a t h r z y x w v u s q p o n m l k j i g d c b 加密字母的对应关系如下 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 f e a t h r z y x w v u s q p o n m l k j i g d c b 其中第一行为原始英文字母第二行为对应加密字母。其它字符不进行加密。编写一个程序用这种密码加密文件。假定要加密的文件名为encrypt.txt及加密后的文件名为output.txt并假定输入文件中字母全为小写字母并且输入密钥也全为小写字母。
【输入形式】从标准输入中输入密钥串并从文件encrypt.txt中读入要加密的内容。 【输出形式】加密后结果输出到文件output.txt中。 【样例输入】 feather 和文件encrypt.txt中内容例如被加密的文件encrypt.txt中内容为 c language is wonderful. 【样例输出】加密后output.txt文件中内容为 a ufqzjfzh xl gpqthmrju. 【样例说明】首先将给定的密钥单词去除重复字母然后按照上面的加密对应表对encrypt.txt文件内容进行加密即可得到加密后的文件其中只对英文字母进行加密对换并且假设encrypt.txt中的英文字母全是小写字母。
【评分标准】该题要求对文件进行加密共有5个测试点。提交程序名为encrypt.c
#include stdio.h
#include string.hmain()
{int i,j,k0,l,num;char s[51],a[51];char ch;FILE *in,*out;infopen(encrypt.txt,r);outfopen(output.txt,w);if(inNULL){printf(Cant open encrypt.txt!\n);return 0;}scanf(%s,s);for(i0;s[i]!\0;i){for(ji-1;j0;j--){if(s[j]s[i])break;}if(j-1)a[k]s[i];}a[k]\0;lstrlen(a);for(chz;cha chz;chch-1){for(i0;il;i){if(cha[i])break;}if(il){a[k]ch;a[k]\0;}}while((chfgetc(in))!EOF){if(cha chz){numch-97;fputc(a[num],out);}elsefputc(ch,out);}fclose(in);fclose(out);
}