当前位置: 首页 > news >正文

【大连民族大学C语言CG题库练习题】——加密文件1

【问题描述】有一种加密方法为:其使用一个字母串(可以含重复字母,字母个数不超过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.h>

main()
{
	int i,j,k=0,l,num;
	char s[51],a[51];
	char ch;
	FILE *in,*out;
	in=fopen("encrypt.txt","r");
	out=fopen("output.txt","w");
	if(in==NULL)
	{
		printf("Can't open encrypt.txt!\n");
		return 0;
	}
	scanf("%s",&s);
  	for(i=0;s[i]!='\0';i++)
	{
 		for(j=i-1;j>=0;j--)
		{
			if(s[j]==s[i])
				break;
		}
		if(j==-1)
			a[k++]=s[i];
	}
	a[k]='\0';
	l=strlen(a);
	for(ch='z';ch>='a' && ch<='z';ch=ch-1)
	{
		for(i=0;i<l;i++)
		{
			if(ch==a[i])
				break;
		}
		if(i==l)
		{
			a[k++]=ch;
			a[k]='\0';
		}
	}
	while((ch=fgetc(in))!=EOF)
	{
		if(ch>='a' && ch<='z')
		{
			num=ch-97;
			fputc(a[num],out);
		}
		else
			fputc(ch,out);
	}
	fclose(in);
	fclose(out);
}

相关文章:

  • vue v-permission权限指令
  • SQL -高阶3
  • using meta-SQL 使用元SQL
  • chatgpt prompt提示词
  • JPEG 协议中英文对照
  • 使用 Kettle 完成数据 ETL
  • 10 分钟解释 StyleGAN
  • Microsoft Expression Web - 网页布局
  • 外包干了5个月,技术退步明显.......
  • SpringCloudAlibaba微服务 【实用篇】| Nacos配置管理
  • Rust国内sparse镜像源配置
  • JavaSE学习路线及经验所谈
  • 掌握视频剪辑技巧:批量置入视频封面,提升视频品质
  • IO_D2(231204)
  • 目标检测——R-CNN算法解读
  • 基于PLC的采摘机械手系统(论文+源码)
  • async/await的实现原理(手动实现)
  • 轻量封装WebGPU渲染系统示例<41>- 前向渲染的雾(Fog)效果(源码)
  • python查询、处理、批量存入数据
  • LeetCode 每日一题 2023/11/27-2023/12/3
  • 重庆市委原常委、政法委原书记陆克华被决定逮捕
  • 2025上海科技节本周六启幕,机器人和科学家同走AI科学红毯
  • 扶桑谈|从石破茂“越菲行”看日本周边外交布局战略新动向
  • 云南一男子持刀致邻居3死1重伤案二审开庭,未当庭宣判
  • 马上评丨未成年人“擦边”短视频岂能成流量密码
  • 国际博物馆日中国主会场确定,北京将展“看·见殷商”等展览