欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

使用C语言文件合并再排序

发布时间:2025/3/15 编程问答 29 豆豆
生活随笔 收集整理的这篇文章主要介绍了 使用C语言文件合并再排序 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

题目

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

#include<stdio.h> #include<stdlib.h> #include<string.h> int main(){void sort(char c[],int n);FILE*fa,*fb,*fc;int i;//循环变量int m;//标记 char ch;char a[50];char b[50];char c[100];if((fa=fopen("C:\\Users\\17604\\Desktop\\a.txt","r"))==NULL){printf("打开文件失败!!");exit(0); }if((fb=fopen("C:\\Users\\17604\\Desktop\\b.txt","r"))==NULL){printf("打开文件失败!!");exit(0); }if((fc=fopen("C:\\Users\\17604\\Desktop\\c.txt","w"))==NULL){printf("打开文件失败!!");exit(0); }i=0;while((ch=getc(fa))!=EOF){//读入A文件数据 a[i]=ch;i++;}printf("A文件:\n"); puts(a);i=0;while((ch=getc(fb))!=EOF){//读入B文件数据 b[i]=ch;i++;}printf("B文件:\n"); puts(b); //合并信息 for(i=0;i<strlen(a);i++){c[i]=a[i];}m=i;for(i=0;i<strlen(b);i++){c[m+i]=b[i];}c[m+i]='\0';printf("合并后C文件:\n"); puts(c);sort(c,(m+i));printf("排序后C文件:\n");puts(c);for(i=0;i<strlen(c);i++){putc(c[i],fc);if(ferror(fc)){printf("写入字符失败!!\n");}}fclose(fa);fclose(fb);fclose(fc);return 0; }void sort(char c[],int n){//排序 按字母顺序排序 char temp;int i;int j;for(i=0;i<n-1;i++){//用选择法进行排序 for(j=i+1;j<n;j++){if(c[j]<c[i]){temp=c[i];c[i]=c[j];c[j]=temp;}}} }

效果图

总结

以上是生活随笔为你收集整理的使用C语言文件合并再排序的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。