c语言文件题要解题思路

在main函数中创建一个文件,将键盘输入的字符串(该字符串只包含字母和)写入文件中。打开该文件,读出字符串。删除串中字母之间的号,并将新串存放到另一个文件中。比如,字符串a**Bcd,删除字母之间的号,得新串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;
}