当前位置: 代码网 > it编程>前端脚本>Powershell > 有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中。

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

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

有两个磁盘文件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)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com