从文本文件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所指向的文件*/}