【C语言】实现文件内容映射转移

news/2024/4/27 1:18:43/文章来源:https://blog.csdn.net/Extreme_wei/article/details/129187523

有两个文件(QA,与QB)。 文件A是经过了字母映射加密的文本(将英文字母一一映射成了另一个), 文件B是字母映射的关系表(格式如A-c;B-R;…,其中前一个字母为加密前的),编写程序完成下列功能: (1)读取文件A中的内容,并将其保存在一个字符数组a中;读取文件B中的内容,并生成一个结构体数组b(结构体中有两个成员,分别是加密前和加密后的字母) (2)借助数组b,求出数组a中各元素在加密前所对应的字符,从而生成字符数组c,并将字符数组c的内容写入文件C中

  • 🚀第一步读取A中内容保存在数组a中
  • 第二步读取B中内容,以结构体形式保存
  • 第三步将数组a与加密前字母对比,将加密后的字符存入数组c中。

文件A是经过了字母映射加密的文本(将英文字母一一映射成了另一个),
文件B是字母映射的关系表(格式如A-c;B-R;…,其中前一个字母为加密前的),编写程序完成下列功能:
(1)读取文件A中的内容,并将其保存在一个字符数组a中;读取文件B中的内容,并生成一个结构体数组b(结构体中有两个成员,分别是加密前和加密后的字母)
(2)借助数组b,求出数组a中各元素在加密前所对应的字符,从而生成字符数组c,并将字符数组c的内容写入文件C中

🚀第一步读取A中内容保存在数组a中

fileA = "Q3.A.txt";//打开文件要知道文件名pf1 = fopen(fileA, "r");//打开文件A,以“r”的形式读取if (pf1 == NULL){perror("fopen");//判断是否打开失败}while (!feof(pf1))//当pf1指向的文件里的内容读取没有结束{a[lenA] = fgetc(pf1);//fgec用来将文件的内容读取到内存中lenA++;//用lenA来记录读取的个数}fclose(pf1);//读取完毕,关闭文件a[lenA] = '\0';//最后再见文件中的'\0'加上。

第二步读取B中内容,以结构体形式保存

typedef struct secert//文件B中内容要求以结构体形式接收
{char pre;//加密前字符char pos;//加密后字符
}Sec b[100];//重命名为Sec,并定义一个数组bfileB = "Q3.B.txt";//打开文件B,要知道文件B的名字pf2 = fopen(fileB, "r");//以r的形式读取if (pf2 == NULL){perror("fopen");//判断是否为空}while (!feof(pf2))//当pf2指向的文件没有内容时,读取结束{fscanf(pf2, "%c %c", &b[lenB].pre, &b[lenB].pos);//fscanf是将文件里的内容读取到内存中,用法与scanf类似,只不过前面的参数多了个文件指针。lenB++;//用lenB来记录读取的个数}fclose(pf2);//关闭文件

第三步将数组a与加密前字母对比,将加密后的字符存入数组c中。

	pf3 = fopen(ZQ3.C.txt", "wb");//打开文件,以wb的形式创建一个名字叫Q3的文件。for (i = 0; i < lenA; i++){flag = 0;for (j = 0; j < lenB; j++){if (a[i] == b[j].pos)//让数组a中的字符与结构体中加密前的字符进行比较,如果相同则将加密后的字符放在数组c中,并将加密后的字符打印出来{c[i] = b[j].pre;printf("%c", c[i]);fputc(c[i],pf3);//并将加密后的字符写入到文件C中flag = 1;continue;}}if (flag = 0){printf("%c", c[i]);fputc(c[i], pf3);}}fclose(pf3);
}

完整代码:

typedef struct secert
{char pre;char pos;
}Sec;
int main()
{char a[100];Sec b[100];char c[100];int lenA = 0;int lenB = 0;int i, j ,flag;char* fileA, * fileB;FILE* pf1, * pf2, * pf3;//打开文件A,要知道文件a的名字fileA = "Q3.A.txt";pf1 = fopen(fileA, "r");if (pf1 == NULL){perror("fopen");}while (!feof(pf1)){a[lenA] = fgetc(pf1);lenA++;}fclose(pf1);a[lenA] = '\0';*/fileB = "Q3.B.txt";pf2 = fopen(fileB, "r");if (pf2 == NULL){perror("fopen");}while (!feof(pf2)){fscanf(pf2, "%c %c", &b[lenB].pre, &b[lenB].pos);lenB++;}fclose(pf2);*/pf3 = fopen("Q3.C.txt", "wb");for (i = 0; i < lenA; i++){flag = 0;for (j = 0; j < lenB; j++){if (a[i] == b[j].pos){c[i] = b[j].pre;printf("%c", c[i]);fputc(c[i],pf3);flag = 1;continue;}}if (flag = 0){printf("%c", c[i]);fputc(c[i], pf3);}}fclose(pf3);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_74734.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记一次线上es慢查询导致的服务不可用

现象 某日线上业务同学反馈订单列表查询页面一直loding&#xff0c;然后提示请求超时&#xff0c;几分钟之后恢复正常 接到报障之后&#xff0c;马上根据接口URL&#xff0c;定位到了请求链路&#xff0c;发现是es查询超时&#xff0c;这里我们的业务订单表数据是由几百万的&a…

如何基于MLServer构建Python机器学习服务

文章目录前言一、数据集二、训练 Scikit-learn 模型三、基于MLSever构建Scikit-learn服务四、测试模型五、训练 XGBoost 模型六、服务多个模型七、测试多个模型的准确性总结参考前言 在过去我们训练模型&#xff0c;往往通过编写flask代码或者容器化我们的模型并在docker中运行…

Python学习笔记202302

1、numpy.empty 作用&#xff1a;根据给定的维度和数值类型返回一个新的数组&#xff0c;其元素不进行初始化。 用法&#xff1a;numpy.empty(shape, dtypefloat, order‘C’) 2、logging.debug 作用&#xff1a;Python 的日志记录工具&#xff0c;这个模块为应用与库实现了灵…

C# Sqlite数据库加密

sqlite官方的数据库加密是收费的&#xff0c;而且比较贵。 幸亏微软提供了一种免费的方法。 1 sqlite加密demo 这里我做了一个小的demo演示如下&#xff1a; 在界面中拖入数据库名、密码、以及保存的路径 比如我选择保存路径桌面的sqlite目录&#xff0c;数据库名guigutool…

Verilog 学习第五节(串口接收部分)

小梅哥串口部分学习part2 串口通信接收原理串口通信接收程序设计与调试巧用位操作优化串口接收逻辑设计串口接收模块的项目应用案例串口通信接收原理 在采样的时候没有必要一直判断一个clk内全部都是高/低电平&#xff0c;如果采用直接对中间点进行判断的话&#xff0c;很有可能…

Linux 红帽9.0 本地源 与 网络源 搭建

本次我们使用的是 redhat 9.0 版本&#xff0c;是redhat 的最新版本&#xff0c;我们一起来对其进行 本地仓库 和 网络仓库的搭建部署~&#xff01;&#xff01;关于 本地仓库&#xff08; 本地源 &#xff09;&#xff0c;和 网络仓库 &#xff08; 网络源 &#xff09;&#…

ESP32蓝牙配网

注意********menuconfig 配置&#xff08;必须打开蓝牙我这是C2所以使用NimBLE &#xff09;可以直接从demo的配置文件拷贝 Component config ---> Bluetooth ---> NimBLE - BLE only Component config ---> Bluetooth ---> NimBLE Options ---> Enable blufi…

计算结构体大小

计算结构体大小 目录计算结构体大小一. 结构体内存对齐1. 简介2. 嵌套结构体二. offsetof三. 内存对齐的意义四. 修改默认对齐数一. 结构体内存对齐 以字节&#xff08;bety&#xff09;为单位 1. 简介 对于结构体成员在内存里的存储&#xff0c;存在结构体的对齐规则&#…

Vue下载安装步骤的详细教程(亲测有效) 1

目录 一、【准备工作】nodejs下载安装(npm环境) 1 下载安装nodejs 2 查看环境变量是否添加成功 3、验证是否安装成功 4、修改模块下载位置 &#xff08;1&#xff09;查看npm默认存放位置 &#xff08;2&#xff09;在 nodejs 安装目录下&#xff0c;创建 “node_global…

Java查漏补缺(14)数据结构剖析、一维数组、链表、栈、队列、树与二叉树、List接口分析、Map接口分析、Set接口分析、HashMap的相关问题

Java查漏补缺&#xff08;14&#xff09;数据结构剖析、一维数组、链表、栈、队列、树与二叉树、List接口分析、Map接口分析、Set接口分析、HashMap的相关问题本章专题与脉络1. 数据结构剖析1.1 研究对象一&#xff1a;数据间逻辑关系1.2 研究对象二&#xff1a;数据的存储结构…

Laravel框架04:视图与CSRF攻击

Laravel框架04&#xff1a;视图与CSRF攻击一、视图概述二、变量分配与展示三、模板中直接使用函数四、循环与分支语法标签五、模板继承、包含1. 继承2. 包含六、外部静态文件引入七、CSRF攻击概述八、从CSRF验证中排除例外路由一、视图概述 视图存放在 resources/views 目录下…

MyBatis学习笔记(七) —— 特殊SQL的执行

7、特殊SQL的执行 7.1、模糊查询 模糊查询的三种方式&#xff1a; 方式1&#xff1a;select * from t_user where username like ‘%${mohu}%’ 方式2&#xff1a;select * from t_user where username like concat(‘%’,#{mohu},‘%’) 方式3&#xff1a;select * from t_u…

收集分享一些AI工具第三期(网站篇)

感谢大家对于内容的喜欢&#xff0c;目前已经来到了AI工具分享的最后一期了&#xff0c;目前为止大部分好用的AI工具都已经介绍给大家了&#xff0c;希望大家可以喜欢。 image-to-sound-fx (https://huggingface.co/spaces/fffiloni/image-to-sound-fx) 图片转换为相对应的声音…

2.27 junit5常用语法

一.了解junitjunit是一个开源的java单元测试框架,java方向使用最广泛的单元测试框架.所需要的依赖<dependencies><!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java --><dependency><groupId>org.seleniumhq.selenium&l…

笔记本触摸板没反应怎么办?处理方法看这些

触摸板在笔记本电脑中是非常重要的一部分&#xff0c;很多用户都会选择使用触摸板代替鼠标。然而&#xff0c;有时你可能会发现&#xff0c;你的笔记本电脑触摸板没反应&#xff0c;无法正常使用。这对于日常使用来说是非常困扰的&#xff0c;但不用担心&#xff0c;我们将在这…

react源码解析10.commit阶段

在render阶段的末尾会调用commitRoot(root);进入commit阶段&#xff0c;这里的root指的就是fiberRoot&#xff0c;然后会遍历render阶段生成的effectList&#xff0c;effectList上的Fiber节点保存着对应的props变化。之后会遍历effectList进行对应的dom操作和生命周期、hooks回…

【数据结构】知识点总结(C语言)

线性表、栈和队列、串、数组和广义表、树和二叉树、图、查找、排序线性表线性表&#xff08;顺序表示&#xff09;线性表是具有相同特性元素的一个有限序列&#xff0c;数据元素之间是线性关系&#xff0c;起始元素称为线性起点&#xff0c;终端元素称为线性终点。线性表的顺序…

sed 功能详解

介绍sedsed是一种流编辑器&#xff0c;它一次处理一行内容&#xff0c;把当前处理的行存储在临时缓冲区中&#xff08;buffer&#xff09;,称为"模式空间"&#xff0c;接着sed命令处理缓冲区中的内容&#xff0c;处理完成后&#xff0c;把缓冲区的内容送往屏幕&#…

RCEE: Event Extraction as Machine Reading Comprehension 论文解读

RCEE: Event Extraction as Machine Reading Comprehension 论文&#xff1a;Event Extraction as Machine Reading Comprehension (aclanthology.org) 代码&#xff1a;jianliu-ml/EEasMRC (github.com) 期刊/会议&#xff1a;EMNLP 2020 摘要 事件提取(Event extraction,…

哪个品牌蓝牙耳机性价比高?性价比高的平价蓝牙耳机推荐

现如今&#xff0c;随着蓝牙技术的进步&#xff0c;蓝牙耳机在人们日常生活中的便捷性更胜从前。越来越多的蓝牙耳机品牌被大众看见、认可。那么&#xff0c;哪个品牌的蓝牙耳机性价比高&#xff1f;接下来&#xff0c;我给大家推荐几款性价比高的平价蓝牙耳机&#xff0c;一起…