C语言文件操作——对文件中的字符串进行排序

题目:利用文件操作读取A.txt中的字符串,并将该字符串进行排序,最后将排序后的字符串保存到文件B.txt中。

思路分析:

① 需要定义两个文件指针,用来指向文件A和文件B。

② 用只读的方式打开文件A。

③ 定义一个字符数组,用来接收文件A中的字符串。

④对该字符数组进行排序(升序或者降序)。

⑤ 用只写的方式打开文件B,再将排序后的字符数组写入文件B。

⑥ 关闭文件。

(注意:本例中的a.txt和b.txt文件路径均在 E:\\File,采用冒泡排序对字符数组进行升序排列)

代码如下:

冒泡排序:

void BubbleSort(char s[],int n){ 
	int i,j,temp;    //定义变量 i,j用来遍历数组,temp用来交换元素
	for(i=0;i<n;i++){    //从第1个位置开始依次遍历到最后一个元素
		for(j=i+1;j<n;j++){    //从第i+1个位置开始遍历与第i个元素比较的元素
			if(s[i]>s[j]){       //若前者小于后者,则交换元素位置
				temp=s[i];    
				s[i]=s[j];
				s[j]=temp;
			}
		}		
	}	
}

main函数:

int main(){
	FILE *fp1,*fp2;	//定义指向文件的指针变量 f1,f2
	char str[100]; 		//定义一个长度为100的字符数组str,用来保存文件a.txt的内容 
	fp1=fopen("E:\\File\\a.txt","r");	//打开文件a.txt的内容,使用方式为只读 
	fgets(str,100,fp1);		//将a.txt的内容输入到str数组中 
	int len=strlen(str);	//计算str数组的长度 
	BubbleSort(str,len);	//使用冒泡排序对str数组的内容排序 
	fp2=fopen("E:\\File\\b.txt","w");	//打开文件b.txt,使用方式为只写 
	fputs(str,fp2);		//将str的内容写入文件b.txt 
	fclose(fp1);        //关闭文件
	fclose(fp2);
	return 0;
}

执行结果:

文件a.txt的内容:

进行排序后 文件B.txt的内容:

 总结:本题考察文件操作与常用排序算法的使用,重点是需要熟悉文件操作函数,

打开文件:fopen("文件路径","使用方式")

读取字符串到文件:fgets(字符串名,字符串大小,文件指针名)

写入字符串到文件:fputs(字符串名,文件指针名)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值