上机第二题
有一种加密方法为:其使用一个字母串(可以含重复字母,字母个数不超过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中的英文字母全是小写字母。
#include
#include
#includeint main()
{char secretword[50];char secretkey[26];char str[100];char ch;int i,j,flag,k=0;FILE *fp1=fopen("encrypt.txt", "r");FILE *fp2=fopen("output.txt", "w");gets(secretword);
// fscanf(fp,"%s",str);fgets(str,100000,fp1);//去重for(i=0;i='a';ch--){flag=0;for(i=0;i='a'&&str[i]<='z')fprintf(fp2,"%c",secretkey[str[i]-'a']);// printf("%c",secretkey[str[i]-'a']);elsefprintf(fp2,"%c",str[i]);
// printf("%c",str[i]);}return 0;
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
