C语言程序设计:字符串与文件输入、输出结合

在文件“A”和“B”中分别写入一行字母,将两个文件中的信息合并(按字母顺序排列),输出到一个新文件“C”中去。

1.定义相关变量

	char stra[N1],strb[N2],strc[N3]={"\0"};//定义3个字符数组,用于存放字符串
	char c;//定义字符变量c,用于字母交换 
	int i,j,k; //定义整型变量i,j,k用于循环 
	FILE *fp1,*fp2,*fp3;//定义3个文件指针,分别指向3个文件信息区

2.打开文件“A”和“B”,分别写入字母

	if((fp1=fopen("A","w"))==NULL)//打开文件A,写 
	{
		printf("无法打开文件!\n");
		exit(0); //终止程序 
	} 
	gets(stra);//从键盘输入字符串 
	fputs(stra,fp1);//将字符串写入文件A  
	fclose(fp1);//关闭文件
	
	if((fp2=fopen("B","w"))==NULL)//打开文件B,写 
	{
		printf("无法打开文件!\n");
		exit(0); //终止程序 
	} 
	gets(strb);//从键盘输入字符串 
	fputs(strb,fp2);//将字符串写入文件B
	fclose(fp2);//关闭文件

3.打开文件“A”和“B”,读取字母存入新的字符数组中

	if((fp1=fopen("A","r"))==NULL)//打开文件A,读 
	{
		printf("无法打开文件!\n");
		exit(0); //终止程序 
	}
	strcat(strc,fgets(stra,N1,fp1));//从文件A中读取字符串,存入字符数组strc 
	fclose(fp1);//关闭文件
	
	if((fp2=fopen("B","r"))==NULL)//打开文件B,读 
	{
		printf("无法打开文件!\n");
		exit(0); //终止程序 
	}
	strcat(strc,fgets(strb,N2,fp2));//从文件B中读取字符串,存入字符数组strc 
	fclose(fp2);//关闭文件

4.对字符数组中的字母排序(选择法)

	for(i=0;strc[i]!='\0';i++)//选择法对字母排序 
	{
		k=i;
		for(j=i+1;strc[j]!='\0';j++)
		{
			if(strc[k]>strc[j])
		    k=j;
		}
		if(i!=k)
		{
			c=strc[i];
			strc[i]=strc[k];
			strc[k]=c;
		}
	}

5.将排好序的字符数组写入文件“C”

	if((fp3=fopen("C","w"))==NULL)//打开文件C,写 
	{
		printf("无法打开文件!\n");
		exit(0); //终止程序 
	}		 
	fputs(strc,fp3);//将字符串写入文件C
	fclose(fp3);//关闭文件

6.程序运行结果

从键盘写入两行字母分别写入文件“A”和“B”

文件“A”和“B”中的内容

 

 

 文件“C”中的内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值