关于文件的两道题
提示: 作者被禁止或删除 内容自动屏蔽
程序代码:#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;
}
