从文本文件old.txt读取字符,将其中的英文字母‘a’、‘b’、‘c’、‘d’和‘e’分别替换为‘+’、‘-’、‘*’、‘/’

从文本文件old.txt读取字符,将其中的英文字母‘a’、‘b’、‘c’、‘d’和‘e’分别替换为‘+’、‘-’、‘*’、‘/’和‘%’其余字符不变,然后写入文本文件new.txt。
【正确答案】:#include#includevoid main(){   FILE *fp1,*fp2;   char  c;    if((fp1=fopen("old.txt","r"))=NULL)    {    printf("error\n");   exit(0);}    if((fp2=fopen("new.txt","w"))=NULL)    {    printf("error\n");    exit(0);}   while(!feof(fp1))    {        c=fgetc(fp1);        switch(c)         {             case'a':fputc('+',fp2);break;             case'b':fputc('-',fp2);break;             case'c':fputc('*',fp2);break;             case'd':fputc('/',fp2);break;             case'e':fputc('%',fp2);break;             default:fputc(c,fp2);            }      }   fclose(fp1);   fclose(fp2);}
【题目解析】:#include #include void main()   /*定义主函数*/{      FILE *fp1,*fp2;   /*定义文件型指针fp1,fp2*/      char c;      /*定义字符型变量c*/      if((fp1=fopen("old.txt","r"))=NULL)   /*以只读方式打开文本文件*/      { printf("error\n"); exit(0);}      /*输出错误,退出程序*/      if((fp2=fopen("new.txt","w"))=NULL)   /*以只写方式打开文本文件*/      { printf("error\n"); exit(0);}   /*输出错误,退出程序*/      while(!feof(fp1))    /*若不是fp1的文件尾则继续循环*/     {          c=fgetc(fp1);  /*从fp1所指向的文本文件读取一个字符*/         switch(c)   /*对字符进行转换*/         {              case'a':fputc('+',fp2);break; /*若字符为a,则将+写入到fp2所指向的文本文件*/             case'b':fputc('-',fp2);break; /*若字符为b,则将-写入到fp2所指向的文本文件*/             case'c':fputc('*',fp2);break; /*若字符为c,则将*写入到fp2所指向的文本文件*/             case'd':fputc('/',fp2);break; /*若字符为d,则将/写入到fp2所指向的文本文件*/             case'e':fputc('%',fp2);break; /*若字符为e,则将%写入到fp2所指向的文本文件*/             default:fputc(c,fp2); /*其他情况则字符不变写入到fp2所指向的文本文件*/           }        }    fclose(fp1); /*关闭fp1所指向的文件*/   fclose(fp2); /*关闭fp2所指向的文件*/}