/*有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并 (按字母顺序排列), 输出到一个新文件C中. */ #include <stdio.h> #include <stdlib.h> int comp(const void * a, const void *b) { return *(char *)a - *(char *)b; } int main() { FILE *fp; int i,j,n,ni; char t, ch; char c[512] = {0}; if((fp = fopen("A.txt","r"))== NULL){ return -1; }else{ printf("open A.txt/n"); } for(i = 0;(ch = fgetc(fp)) != EOF; i++){ c[i] = ch; putchar(c[i]); } n = i; fclose(fp); putchar('/n'); if((fp = fopen("B.txt","r"))== NULL){ return -1; }else{ printf("open B.txt/n"); } for(i = 0;(ch = fgetc(fp)) != EOF; i++){ c[i+n] = ch; putchar(c[i+n]); } fclose(fp); putchar('/n'); n = n + i; qsort(c, n, sizeof(char), comp); fp = fopen("C.txt", "w"); for(i = 0;i < n;i++ ){ putc(c[i], fp); putchar(c[i]); } fclose(fp); putchar('/n'); return 0; }