有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中。

该程序使用C语言读取两个分别名为A.txt和B.txt的文件,将它们的内容合并到一个数组中并按字母顺序排序,最后将排序后的内容写入新文件C.txt。程序采用了冒泡排序算法进行字母排序。
摘要由CSDN通过智能技术生成

有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中。

/*
有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中。
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

void judge(FILE *fp, char *filename);
void sort(char *array);

int main() {
	char array[255] = {0}; //定义一个数组用于存放读出来的字母
	FILE *fp;	//存放文件指针

	fp = fopen("A.txt", "r");
	judge(fp, "A.txt");
	fread(array, sizeof(char), sizeof(array), fp);	//将A文件的字母读取存入array
	fclose(fp);

	fp = fopen("B.txt", "r");
	judge(fp, "B.txt");
	fread(array + strlen(array) - 1, sizeof(char), sizeof(array), fp);	//将B文件的字母继续放在array中A文件后面
	fclose(fp);

	sort(array);

	fp = fopen("C.txt", "w+");
	fwrite(array, sizeof(char), sizeof(array), fp);	//将array中数据写入文件C中
	printf("C.txt写入成功:%s\n", array);
	fclose(fp);

	return 0;
}

//判断文件打开是否正常
void judge(FILE *fp, char *filename) {
	if (fp == NULL) {
		printf("%s文件读取失败");
		exit(0);
	}
}

//使用冒泡法对字母排序
void sort(char *array) {
	int i, j, len = strlen(array);
	for (i = 0; i < len - 1; i++) {
		for (j = 0; j < len - i - 1; j++) {
			if (array[j] > array[j + 1]) {
				array[j] = array[j] + array[j + 1];
				array[j + 1] = array[j] - array[j + 1];
				array[j] = array[j] - array[j + 1];
			}
		}
	}
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值