有两个磁盘文件“A”和“B”,各存放一行字母,今要求把这

有两个磁盘文件“A”和“B”,各存放一行字母,今要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件“C”中去。用void file_merge()   测试结果显示文件合并成功

fopen打开两个文件,fgets读取字符串,合并到一个字符串中再进行排序,最后输出到C文件

int sort(char *p)
{
    int i,j,n=0;
    for(i=0;p[i] != 0;i++)
        n++;
    char c;
    for(i=0;i<n-1;i++)
        for(j=0;j<n-i-1;j++)
        {
            if(p[j] > p[j+1])
            {
                c = p[j];
                p[j] = p[j+1];
                p[j+1] = c;
            }
        }
    return n;
}

void main()
{
    FILE *fp1,fp2,fp3;
    if((fp1=fopen("A","r"))==NULL)
        return;
    if((fp2=fopen("B","r"))==NULL)
        return;
    if((fp3=fopen("C","w"))==NULL)
        return;
    char buf[101] = {0};
    fgets(buf,100,fp1);
    char *p = buf;
    while(*p != 0) p++;
    fgets(p,100-(p-buf),fp2);
    int len = sort(buf);
    fputs(buf,fp3);
    fclose(fp1);
    fclose(fp2);
    fclose(fp3);
}

 

思路一:

1.打开文件,分别读取内容,得到两个字符串,

2.将两个字符串拼接形成一个大串

3.大串排序

4.将大串写入文件

思路二:

1.打开文件,分别读取内容,得到两个字符串

2.两个字符串分别排序

3.逐个比较两个字符串中的字符大小,按规定的顺序写入文件

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^