#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*
题目:有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),
输出到一个新文件C中
*/
int cmp(const void* a, const void* b)
{
return *(char*)a - *(char*)b;
}
int main()
{
// 读文件
FILE* f_read_A = fopen("A.txt", "r");
FILE* f_read_B = fopen("B.txt", "r");
if (f_read_A == NULL || f_read_B == NULL)
{
return;
}
char buf_a[100] = { 0 };
char buf_b[100] = { 0 };
int a = 0, b = 0;
char ch;
while ((ch = getc(f_read_A))!= EOF)
{
buf_a[a++] = ch;
}
while ((ch = getc(f_read_B)) != EOF)
{
buf_b[b++] = ch;
}
char* buf_c = strcat(buf_a, buf_b);
qsort(buf_c, strlen(buf_c), sizeof(char), cmp);
//printf("%s\n", buf_c);
//写文件
FILE* f_write_C = fopen("C.txt", "w");
if (f_write_C == NULL)
{
return;
}
for (int i = 0; i < strlen(buf_c); i++)
{
fputc(buf_c[i], f_write_C);
}
fclose(f_read_A);
fclose(f_read_B);
fclose(f_write_C);
return 0;
}