求一道C语言程序,大神们,期末到了,不想挂科啊,帮帮忙啊。。。。不尽感激。。。

有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中。... 有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列), 输出到一个新文件C中。 展开
 我来答
xc1395
2011-07-03 · 超过23用户采纳过TA的回答
知道答主
回答量:66
采纳率:0%
帮助的人:73.2万
展开全部
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
int i,j;
char a[100]={0},b[100]={0},s[200]={0},c;
FILE *fp1,*fp2,*fp3;
if((fp1=fopen("1.txt","r"))==NULL) //注意要保证,该文件的目录下有1.txt,和2.txt
{
printf("read error!");
exit(0);
}
if((fp2=fopen("2.txt","r"))==NULL)
{
printf("read error!");
exit(0);
}
if((fp3=fopen("3.txt","w"))==NULL)
{
printf("write error!");
exit(0);
}
fgets(a,100,fp1);//遇到'\0'就结束,100只是一个范围而已
fgets(b,100,fp2);
strcpy(s,a);//将a的内容复制到s中
strcat(s,b);//将b的内容接在s中的'\0'后,上面两条语句即将a和b合并后存放在s中
for(i=0;i<(int)strlen(s)-1;i++)
for(j=0;j<(int)strlen(s)-i-1;j++)
if(s[j]>s[j+1])
{
c=s[j];
s[j]=s[j+1];
s[j+1]=c;
}
fputs(s,fp3);//将1.txt和2.txt的数据取出排序后放到了3.txt
fclose(fp1);
fclose(fp2);
fclose(fp3);
return 0;
}
nscboy
2011-07-02 · TA获得超过1054个赞
知道小有建树答主
回答量:826
采纳率:0%
帮助的人:556万
展开全部
将两个文件都读取大内存中.
然后排序
然后将排序后的数据写入到文件C中
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kyhx1984
2011-07-03
知道答主
回答量:15
采纳率:0%
帮助的人:6.8万
展开全部
open()文件 读取里面的数据

然后排序 不就ok了 字母排序 可以 通过 asiic码判断大小
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式