简答题
👁️ 浏览量:

试题题干

从文本文件old.txt读取字符,将其中的英文字母‘a’、‘b’、‘c’、‘d’和‘e’分别替换为‘+’、‘-’、‘*’、‘/’和‘%’其余字符不变,然后写入文本文件new.txt。

参考答案

试题解析

#include<stdio.h>
#include<stdlib.h>
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所指向的文件*/

}