】两个文本文件a1.txt和b1.txt,各存放一行字符。要求编程实现把这两个文件中的信息合并,并按字母顺序排序,然后输出到一个新的文本文件c1.txt中。同时要求将排序的功能编写为一个单独的函数,在main函数中调用该函数实现排序。c语言
时间: 2024-04-08 12:29:47 浏览: 145
面试题:把a.txt、b.txt文件合并写到c.txt文件
您可以使用以下代码来实现文件合并、排序和输出到新文件的功能:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void sortString(char* str)
{
int i, j, n = strlen(str);
char temp;
for (i = 0; i < n-1; i++)
{
for (j = i+1; j < n; j++)
{
if (str[i] > str[j])
{
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
}
}
void mergeAndSortFiles(const char* file1, const char* file2, const char* outputFile)
{
FILE* fp1 = fopen(file1, "r");
FILE* fp2 = fopen(file2, "r");
FILE* fpOut = fopen(outputFile, "w");
if (fp1 == NULL || fp2 == NULL || fpOut == NULL)
{
printf("File open error!");
return;
}
char line[100];
char merged[200] = "";
fgets(line, sizeof(line), fp1);
strcat(merged, line);
fgets(line, sizeof(line), fp2);
strcat(merged, line);
sortString(merged);
fputs(merged, fpOut);
fclose(fp1);
fclose(fp2);
fclose(fpOut);
}
int main()
{
const char* file1 = "a1.txt";
const char* file2 = "b1.txt";
const char* outputFile = "c1.txt";
mergeAndSortFiles(file1, file2, outputFile);
printf("Files merged and sorted successfully!");
return 0;
}
```
请确保在与该代码相同的目录下创建名为`a1.txt`和`b1.txt`的文本文件,并将要合并的字符行分别写入这两个文件中。运行程序后,将会在同一目录下生成名为`c1.txt`的输出文件,其中包含了合并并排序后的字符行。
阅读全文