问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求助,C语言怎么将文档中的数据用动态链表按姓名排序。。

发布网友 发布时间:2023-04-23 23:03

我来回答

1个回答

热心网友 时间:2023-10-10 11:40

struct student* qushuju(struct student* head) //读取数据
{
FILE *p;
struct student *str1,*str2;
int i=0,j=0,k;
char all[100]={0},name[20]={0},xuehao[20]={0},score[20]={0},c;
if((p=fopen("data.dat","r+"))==NULL)
{printf("文件不存在!");getch();exit(0);}
c=fgetc(p);
fgets(all,1000,p); //读取文件中的一行到buf中'
if(strlen(all)<10||strlen(all)>25)
{
fclose(p);
remove("data.dat");
return head;
}
head=(struct student *)malloc(sizeof(struct student));

while(all[i]!=' ')
{name[j]=all[i];i++;j++;}
j=0;i++;
strcpy(head->name,name);
while(all[i]!=' ')
{xuehao[j]=all[i];i++;j++;}
j=0;i++;
strcpy(head->xuehao,xuehao);
while(all[i]!=' ')
{score[j]=all[i];i++;j++;}
strcpy(head->score,score);
head->next=NULL;
while((c=fgetc(p))!= EOF)
{
char all2[100]={0},name2[20]={0},xuehao2[20]={0},score2[20]={0};
str1=(struct student *)malloc(sizeof(struct student));
i=0;j=0;
fgets(all2,1000,p); //读取文件中的一行到buf中'
while(all2[i]!=' ')
{name2[j]=all2[i];i++;j++;}//将文件的内容保存到name2[ ]里面,如果没有遇到空格
j=0;i++;
strcpy(str1->name,name2);//将name2[ ]里面的内容复制到链表里面
while(all2[i]!=' ')
{xuehao2[j]=all2[i];i++;j++;}//将文件的内容保存到xuehao2[ ]里面,如果没有遇到空格
j=0;i++;
strcpy(str1->xuehao,xuehao2);//将xuehao2[ ]里面的内容复制到链表里面
while(all2[i]!=' ')
{score2[j]=all2[i];i++;j++;}//将文件的内容保存到score2[ ]里面,如果没有遇到空格
strcpy(str1->score,score2);//将score2[ ]里面的内容复制到链表里面
str1->next=NULL;//末尾指向空
head=lianjie(head,str1);//将新节点和以前的节点建立连接
}
fclose(p);
return head;
}
这是我的一个读取文本内容到链表中
文件中的内容是这样的
小张 201112050 94
小李 201112051 90
空格那些必须考虑到
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...换手机号显示你以设置拒收微信登陆.换绑.注册短信怎么解决? 伊拉克战争是哪些国家发动的?请快回答,我有急用! 二零零三年三月谁发动了对伊拉克的战争 西门子、美的、容声三个门的冰箱那个牌子又省电又实用? 海尔冰箱BCD-206 SCFM 放3档工作多长时间 ,停多长时间正常 海尔BCD-206SCFM基本参数 6年级上册数学练习册百分数50到53页答案 小学数学六年级(上):帮你学数学口算练习册2008年印刷版信息 小学数学六年级(上):帮你学数学口算练习册2010年印刷版信息 小学六年级数学上册百分数练习册《课堂作业本》答案64面第2题 c语言利用指针将10个学生的姓名排序 阳伞的读音阳伞的读音是什么 阳伞的引证解释阳伞的引证解释是什么 水钻打混凝土地面废钻头吗 诺基亚C20 Plus开售在即,买不买主要看这三点 19年春节是几月几日 燕然山的拼音狐燕然山的拼音是什么 梦见自家里有个透明的小蜘蛛的预兆 梦见大蜘蛛生了个小蜘蛛的预兆 一直不明白请教大家什么是*、什么是漫游,希望各位大虾能指点一二,详细最好,谢谢 &quot;冰火、漫游&quot;是什么? 阿拉德之怒漫游怎么加点 漫游技能加点方法攻略 天龙八部冰火玄毒四属性 分别指些什么能力 慕容打冰石头如何? DNF男漫游能不能带必火 堆火强 刷图? DNF,漫游是什么型属性? DNF的漫游枪手在哪能找到让子弹变成冰火属性的技能 苹果12初始锁屏时间 梦见被狗咬或被狗追的预兆 4的个数,摆出的数?摆出的个数? 6个0摆出的数是什么意思? 用C语言将4个学生的姓名按拼音首字母从大到小排序并显示. 按人名排序 c语言 占上风什么意思 攻其不备、兵贵神速、草木皆兵、所向无敌、声东击西、围魏救赵 的意思 《三十六计》中胜敌计的瞒天过海,围魏救赵,借刀杀人,以逸待劳,趁火打劫,声东击西各有什么事理?将各 刘牧是复姓吗 刘禹是复姓吗 苹果xsmax好用吗? xs max有什么参数配置,使用效果如何? 莱卡相机是哪国品牌 我是想把自己添加到米聊里面的一些个人信息删除掉,请问应该怎么弄? 响晴的意思响晴的意思是什么 “响晴”的含义? 苹果手表充不进去电维修要多少钱 B柱是什么意思 汽车的B柱有什么用 如果只知道QQ帐号忘记了QQ号码也忘记了QQ密码如何才能找到呢如何才能登上去了 韩语吃方便面是什么意思 可以帮我找一下韩语中方便面怎么说吗 韩国女孩说的要来我家吃泡面吗是什么意思