1 题目
有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中。
2 分析
先把文件A和文件B的内容都读出来,然后使用字符串连接函数strcat
连接成一个字符串,然后用冒泡排序的思想,将字符串中的字母进行排序,最后写入文件C中
3 实现
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
FILE *fp;
char str[100], str1[100];
if ((fp = fopen("A.txt", "r")) == NULL) {
printf("文件打开失败\n");
exit(0);
}
fgets(str, 100, fa); // 读入A中字符串到str
fclose(fp);
if ((fb = fopen("B.txt", "r")) == NULL) {
printf("文件打开失败\n");
exit(0);
}
fgets(str1, 100, fb); // 读入B中字符串到str1
fclose(fp);
strcat(str, str1); // 字符串连接
// 冒泡排序,将字符串排序
for(int i = strlen(str) - 1; i > 1; i--) {
for (int j = 0; j < i; j++) {
if (str[j] > str[j + 1]) {
char t = str[j];
str[j] = str[j + 1];
str[j + 1] = t;
}
}
}
if ((fp=fopen("C.txt", "w")) == NULL) {
printf("文件打开失败\n");
exit(0);
}
fputs(str, fp); // 将字符串写入文件C
fclose(fp);
return 0;
}