求一道C语言程序,大神们,期末到了,不想挂科啊,帮帮忙啊。。。。不尽感激。。。
有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中。...
有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列), 输出到一个新文件C中。
展开
展开全部
#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;
}
#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;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询