有两个磁盘文件c.txt(abcdefghijklmnopqrstu)和d.txt(helloworld),各存放一行字母, 要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件e.txt中。

/*
题目:有两个磁盘文件c.txt(abcdefghijklmnopqrstu)和d.txt(helloworld),各存放一行字母,
要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件e.txt中。
*/
#include<stdio.h>
#include<string.h>
#include<math.h>
void bubbleSort(char a[],int n){
    int i,j;
    char temp;
    for(i=0;i<n-1;i++){
        for(j=0;j<n-i-1;j++){
            if(a[j]>a[j+1]){
                temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            }
        }
    }
}
int main()
{
    FILE *fpc=fopen("d:\\c.txt","r");
    FILE *fpb=fopen("d:\\b.txt","r");
    FILE *fpe=fopen("d:\\e.txt","wb+");
    if(fpc==NULL||fpb==NULL||fpe==NULL){
        printf("error");
        return 0;
    }
    char chc[128],chb[128];
    int i=0,j=0,len;
    fscanf(fpc,"%s",chc);
    fscanf(fpb,"%s",chb);
    strcat(chc,chb);
    len=strlen(chc);
    bubbleSort(chc,len);
    for(i=0;i<len;i++){
        fprintf(fpe,"%c",chc[i]);
    }
    fclose(fpc);
    fclose(fpb);
    fclose(fpe);
    return 0;
}

/*
有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),
输出到一个新文件C中
*/
#include<stdio.h>
#include<math.h>
#include<malloc.h>
#include<string.h>
main()
{
    FILE *f=fopen("e://test.txt","w");
    FILE *fa=fopen("e://a.txt","r");
    FILE *fb=fopen("e://b.txt","r");
    if(f==NULL||fa==NULL||fb==NULL){
        return 0;
    }
    char temp,a[100],b[100];
    int i,j,k;
    fscanf(fa,"%s",a);
    fscanf(fb,"%s",b);
    for(i=0;a[i]!='\0';i++);
    for(j=0;b[j]!='\0';j++){
        a[i]=b[j];
        i++;
    }
    a[i]='\0';
    for(i=0;a[i]!='\0';i++){
        for(j=0;j<strlen(a)-i-1;j++){
            if(a[j]>a[j+1]){
                temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            }
        }
    }

    puts(a);
    fprintf(f,"%s",a);

    fclose(f);
    fclose(fa);
    fclose(fb);
}

 

 
posted @ 2019-12-05 18:26  dreamy_java  阅读(1385)  评论(0编辑  收藏  举报