关于文件的两道题
提示: 作者被禁止或删除 内容自动屏蔽
#include<stdio.h> #include<string.h> #include<stdlib.h> #define SIZE 100//在这里我直接宏定义了一个SIZE量,当然你可以使用其他的处理的方法// void swap(char *pstr1,char *pstr2); void main() { FILE *fp1,*fp2,*fp3;//文件指针// char str_fp1[SIZE],str_fp2[SIZE],*str_fp3; if((fp1=fopen("F:\\123\\文件1.txt","r"))==NULL)//打开文件1// { printf("文件1打开失败!"); exit(1); } else { fgets(str_fp1,sizeof(str_fp1),fp1);//使用fgets函数将文件"1.txt"中的字符串读到str_fp2中// } if((fp2=fopen("F:\\123\\文件2.txt","r"))==NULL)//打开文件2// { printf("文件2打开失败!"); exit(1); } else { fgets(str_fp2,sizeof(str_fp2),fp2);//使用fgets函数将文件"1254.txt"中的字符串读到str_fp2中// } str_fp3=(char*)malloc(strlen(str_fp1)+strlen(str_fp2)+1); //通过使用动态分配内存malloc函数// strcpy(str_fp3,str_fp1); //先是将str_fp1通过函数strcpy(字符串复制函数)复制到str_fp3中// strcat(str_fp3,str_fp2); //再通过调用strcat(字符串连接函数)函数将str_fp2连接到str_fp3的结尾// { int i,j,ilong=strlen(str_fp3);//以下是一个比较的函数的代码,设立一个局部的变量这样可以节省内存空间// for(i=1;i<ilong;i++) for(j=0;j<ilong-i;j++) if(*(str_fp3+j)>*(str_fp3+j+1)) swap(str_fp3+j,str_fp3+j+1);//调用冒泡比较函数,体现c语言的模块化的编程风格// } puts(str_fp3); if((fp3=fopen("F:\\123\\文件3.txt","w"))==NULL)//打开文件3,将字符串读到该文件里// { printf("文件3打开失败!"); exit(1); } fputs(str_fp3,fp3);//调用fputs函数将字符串输入到文件3中// fclose(fp1); fclose(fp2); fclose(fp3); free(str_fp3);//释放动态分配的内存空间// } void swap(char *pstr1,char *pstr2) { char p; p=*pstr1; *pstr1=*pstr2; *pstr2=p; }