有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中。用c语言编写这段代码
时间: 2023-11-16 10:06:19 浏览: 72
好的,以下是一个 C 语言的实现示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
FILE *file_a, *file_b, *file_c;
char content_a[100], content_b[100], merged_content[200];
int i, j, k, len_a, len_b;
// 读取文件A和B中的内容
file_a = fopen("A.txt", "r");
fgets(content_a, 100, file_a);
fclose(file_a);
file_b = fopen("B.txt", "r");
fgets(content_b, 100, file_b);
fclose(file_b);
// 合并并排序字符串
len_a = strlen(content_a);
len_b = strlen(content_b);
i = j = k = 0;
while (i < len_a && j < len_b) {
if (content_a[i] < content_b[j]) {
merged_content[k++] = content_a[i++];
} else {
merged_content[k++] = content_b[j++];
}
}
while (i < len_a) {
merged_content[k++] = content_a[i++];
}
while (j < len_b) {
merged_content[k++] = content_b[j++];
}
// 将排序后的字符串写入新文件C中
file_c = fopen("C.txt", "w");
fputs(merged_content, file_c);
fclose(file_c);
return 0;
}
```
需要注意的是,这里采用了 fgets 函数来读取文件中的内容,读取一行数据时,最多读取 99 个字符。排序操作使用了类似于归并排序的思想,将两个字符串合并成一个排序后的字符串。最后将排序后的字符串写入新文件C中,使用了 fputs 函数。
阅读全文