在当前目录有文件“case1.in”,文件里存放有多个(总个数不超过10000个)英文单词(每个英文单词不会超过10个字文字符), 每行一个,单词未排序。现要求,将文件中的所有单词按字典顺序排序,然后将排序好的单词写入新建的文件answer.txt中(注:文件存放于当前目录)。 请完成程序,实现该功能,(注意,填空题,请不要使用return 0结束,否则会影响评判而判错)

(如case1.in文件中原内容如下)
hello
bye
yes

(程序执行后,在文件answer.txt中内容如下)
bye
hello
yes

整体思路:将文件 “case1.in" 中的单词一个一个读出来,用插入排序存入数组中,再循环写入 “answer.txt” 中。

#include "stdio.h"
#include "string.h"main()
{char origin[10000][11], temp[11];FILE *fp, *fp2;fp=fopen("“case1.in", "r");if(fp==NULL)return 1;        //文件打开方式是"r",如果文件打开失败程序运行完fgets(origin[0], 11, fp);   //控制台上会显示Process return 1,int n=1, i, j;               //可以以此来判断文件是否正常打开while((fgets(origin[n], 11, fp))!=NULL)//每次读取一个单词,且这个单词存在数组的最后一行{i=0;if(strcmp(origin[n], origin[i])<0)//如果这个单词排在数组中第一个单词的前面{for(j=n;j>=0;j--){strcpy(origin[j+1],origin[j]);//把现有的所有单词都往后移一行}strcpy(origin[0],origin[n+1]);//把读到的单词放到数组第一个}if(strcmp(origin[n], origin[n-1])>0)//如果读到的单词排在最后,不用管,n++继续读取下一个单词{n++;continue;//}if(strcmp(origin[n], origin[i])>0)//读到的单词要放在中间{while(strcmp(origin[n], origin[i])>0){i++;//找到要插入的位置}for(j=n;j>=i;j--)//把要插入的位置之后的所有单词都往后移一行{strcpy(origin[j+1],origin[j]);}strcpy(origin[i],origin[n+1]);//再把读到的单词放到相应位置}n++;//读取下一个单词}fp2=fopen("answer.txt", "w");for(i=0;i<n;i++)//因为第n个是读取失败时的值,所以不能等于n{fputs(origin[i], fp2);//把单词循环写入到"answer.txt"中}fclose(fp);fclose(fp2);
}

文本文件操作 单词排序相关推荐

  1. linux下sort命令使用详解---linux将文本文件内容加以排序命令

    转载自:http://www.cnblogs.com/hitwtx/archive/2011/12/03/2274592.html linux下sort命令使用详解---linux将文本文件内容加以排 ...

  2. Linux sort --将文本文件内容加以排序

    功能说明:将文本文件内容加以排序. 语 法:sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][ ...

  3. LeetCode4_编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ““。(解决方案:横向扫描、 纵向扫描 、分治 二分查找 、秀儿操作之排序比较头尾)

    题目 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow&q ...

  4. 解決“无法解决 equal to 操作的排序规则冲突 ”问题

    问题:在创建存储过程时 出现 "无法解决 equal to 操作的排序规则冲突 " 解决方法: 1 WHERE 列名 collate Chinese_PRC_CI_AS(强制指定排 ...

  5. C++文本文件操作和二进制文件读写

    文本文件操作: 代码如下: #include <iostream> #include <fstream> using namespace std;void test01() { ...

  6. 1.10 编程基础之简单排序_10 单词排序

    http://noi.openjudge.cn/ch0110/10/ /* 1.10 编程基础之简单排序_10 单词排序 http://noi.openjudge.cn/ch0110/10/总时间限制 ...

  7. 1.10 编程基础之简单排序 10 单词排序 python

    http://noi.openjudge.cn/ch0110/10/ """ 1.10 编程基础之简单排序 10 单词排序 http://noi.openjudge.cn ...

  8. 信息学奥赛一本通 1185:单词排序 | OpenJudge NOI 1.10 10:单词排序

    [题目链接] ybt 1185:单词排序 OpenJudge NOI 1.10 10:单词排序 [题目考点] 1. 排序 [君义精讲]排序算法 2. 字符串比较 字符数组比较: char s1[N], ...

  9. 信息学奥赛一本通(1185:单词排序)

    1185:单词排序 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 11964     通过数: 6009 [题目描述] 输入一行单词序列,相邻单词之间由1个或多个 ...

最新文章

  1. mysql 商品属性_MySQL产品属性表设计
  2. 基于HMM的中文分词
  3. ab st语言编程手册_西门子PLC编程SCL和LAD谁才是王者?一起讨论一下
  4. MITRE 发布防御知识库 Shield
  5. LIRe 源代码分析 7:算法类[以颜色布局为例]
  6. 2019全国知识图谱与语义计算大会
  7. 怎么用proteus软件仿真单片机程序?
  8. Java初学01:学习路线,韩顺平java教程百度云
  9. 《白帽子讲web安全》读书笔记_2021-07-16
  10. android 打电话区号,Android Q新功能首曝:漫游自动加拨国际区号
  11. 佛说:前世的五百次回眸,才换来今生的一次擦肩而过
  12. 数据库系统概念 - 数据模型,关系模型,关系,候选码,主码,外码
  13. C语言开发必会 宏定义、宏函数
  14. Ubuntu 设置固定 IP 最简单的方法!
  15. python下载某网站收费文档(一)——配合fiddler半自动版
  16. 自己写strcmp( )函数
  17. 从官网下载mysql 5.7
  18. Linux中写C代码进行文件读写与权限修改等各类操作
  19. 微信小程序page页面下有多余空白区域(解决方法)
  20. 昆明理工大学计算机调剂贴吧,昆明理工大学2020年硕士研究生调剂公告(二)...

热门文章

  1. 大数据揭秘区块链人才大迁徙:那个你身边悄悄离职的人去哪儿了?
  2. Java腐烂的橘子leetcode
  3. python 期货策略_Python版商品期货跨期布林对冲策略 (教学)
  4. Android Excel(xls,xlsx)表格数据简单生成和读取尝试
  5. RTSP协议网络摄像头互联网无插件直播EasyNVR+EasyNVS,如何保持配置地址一致?
  6. 小米电视怎么看cctv?安装小鲸电视免广告教程值得看
  7. Python实操笔记(2)——海龟绘图法绘制有层次感的奥运五环
  8. 干货|Stakeholder利益相关者讲解
  9. 怎样设置二维码的尺寸
  10. Windows SUS