c的作业,求大佬救救孩子

 在main函数中创建一个文件,将键盘输入的字符串(该字符串只包含字母和*)写入文件中。打开该文件,读出字符串。删除串中字母之间的*号,并将新串存放到另一个文件中。比如,字符串*a**B*cd**,删除字母之间的*号,得新串*aBcd**。

代码如下,如有帮助,请采纳一下,谢谢。

#include <stdio.h>
#include <string.h>
void main()
{
	FILE* fp;
	char buf[1024] = {0};
	//char* p;
	int size;   //文件大小
	int i; 
	int indexbegin = 0,indexlast = 0;
	printf("请输入一个字符串:");
	gets(buf);
	size = strlen(buf);
	//写入文件
	if(!(fp = fopen("a.txt","w")))
	{
		printf("文件打开失败\n");
		return ;
	}
	fwrite(buf,1,size,fp);
	fclose(fp);
	fp = 0;

	//读文件
	if (!(fp = fopen("a.txt","r")))
	{
		printf("文件打开失败\n");
		return ;
	}
	fseek(fp,0,SEEK_END);
	size = ftell(fp);
	rewind(fp);
	size = fread(buf,1,size,fp);
	fclose(fp);
	fp = 0;
	//写入文件
	if (!(fp = fopen("b.txt","w")))
	{
		printf("文件打开失败\n");
		return ;
	}
	//p = &buf[0];
	i = 0;
	
	//找到第一个和最后一个字母的位置
	for (indexbegin = 0; indexbegin < size; indexbegin++)
	{
		if(buf[indexbegin] != '*')
			break;
	}
	for (indexlast = size -1; indexlast >= 0 ;indexlast--)
	{
		if(buf[indexlast] != '*')
			break;
	}

	//将0-indexbegin之间的写入文件
	fwrite(buf,1,indexbegin,fp);
	//将indexbegin-indexlast之间的写入文件
	while(indexbegin <= indexlast)
	{
		if(buf[indexbegin] != '*')
			fwrite(&buf[indexbegin],1,1,fp);
		indexbegin++;
	}
	//将indexlast之后的写入文件
	if(indexlast < size-1)
		fwrite(&buf[indexlast+1],1,size - indexlast,fp);

	fclose(fp);
	fp = 0;
}