怎么对c语言中文本文件进行删除特定的字符串,并且将删除后的文件重新保存在新的文本中
1条回答 默认 最新
- a5156520 2022-03-24 10:31关注
一个实现,供参考:
#include <stdio.h> int main(void){ FILE * oldfile = fopen("f:\\问题.txt","r"); if(oldfile==NULL){ printf("原文件打开失败,可能是文件名错误或者路径错误!\n"); return 0; } FILE * newfile = fopen("f:\\新文件.txt","w+"); if(newfile==NULL){ printf("新文件创建,可能是权限不足!\n"); return 0; } char temp[256]; //存放对比字符串的数组 char * deletestr = "什么"; //要删除的字符串 char ch; int ti = 0; //获取删除字符串的长度 int length ; for(length=0;deletestr[length]!='\0';length++) continue; ch = fgetc(oldfile); //从原文件读入一个字符 while(ch!=EOF){ if(ch==deletestr[ti]){ //如果读取的字符和删除字符串的某个字符匹配则执行完全匹配操作 while(ch==deletestr[ti]&&ch!=EOF){ temp[ti] = ch; ti++; ch = fgetc(oldfile); } temp[ti]='\0'; if(ti<length){ //如果未完全匹配,则把这串不匹配的字符串写入新文件,如果匹配则不写入新文件 fprintf(newfile,"%s",temp); // printf("temp=%s\n",temp); } if(ch!=EOF){ //如果最后一个读取的字符不是文件结束符则写入新文件 fprintf(newfile,"%c",ch); } ti=0; }else{ //如果从原文件读取的字符和要删除的字符串的某一位不匹配,则写入新文件 fprintf(newfile,"%c",ch); // printf("ch=%c\n",ch); } ch = fgetc(oldfile); //从原文件读取下一个字符 } fclose(oldfile); fclose(newfile); return 0; }
解决 3无用
悬赏问题
- ¥100 如何寻找到黑客帮助,愿意付丰厚的酬劳
- ¥15 java代码写在记事本上后在cmd上运行时无报错但又没生成文件
- ¥15 关于#python#的问题:在跑ldsc数据整理的时候一直抱这种错误,要么--out识别不了参数,要么--merge-alleles识别不了参数(操作系统-linux)
- ¥15 PPOCRLabel
- ¥15 混合键合键合机对准标识
- ¥100 现在不懂的是如何将当前的相机中的照片,作为纹理贴图,映射到扫描出的模型上
- ¥15 魔霸ROG7 pro,win11.息屏后会显示黑屏,如图,如何解决?(关键词-重新启动)
- ¥15 有没有人知道这是哪里出了问题啊?要怎么改呀?
- ¥200 C++表格文件处理-悬赏
- ¥15 Windows Server2016本地登录失败