用C语言写:有两个磁盘文件A和B,各存放一行字母,今要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中去。
时间: 2023-11-16 14:06:25 浏览: 77
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LEN 100
int main() {
// 打开文件A和B
FILE *fileA = fopen("A.txt", "r");
FILE *fileB = fopen("B.txt", "r");
if (fileA == NULL || fileB == NULL) {
printf("Error: failed to open file.\n");
exit(1);
}
// 读取文件A和B中的内容
char strA[MAX_LEN], strB[MAX_LEN];
fgets(strA, MAX_LEN, fileA);
fgets(strB, MAX_LEN, fileB);
// 合并两个字符串
int lenA = strlen(strA);
int lenB = strlen(strB);
int i, j;
char strC[MAX_LEN * 2];
for (i = 0, j = 0; i < lenA && j < lenB;) {
if (strA[i] < strB[j]) {
strC[i + j] = strA[i];
i++;
} else {
strC[i + j] = strB[j];
j++;
}
}
while (i < lenA) {
strC[i + j] = strA[i];
i++;
}
while (j < lenB) {
strC[i + j] = strB[j];
j++;
}
strC[i + j] = '\0';
// 打开文件C
FILE *fileC = fopen("C.txt", "w");
if (fileC == NULL) {
printf("Error: failed to create file.\n");
exit(1);
}
// 将合并后的字符串写入文件C
fputs(strC, fileC);
// 关闭文件
fclose(fileA);
fclose(fileB);
fclose(fileC);
return 0;
}
```
阅读全文