你这偷腥的猫 2022-03-24 00:39 采纳率: 25%
浏览 376

c语言文件操作之删除特定字符串

怎么对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月24日

悬赏问题

  • ¥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本地登录失败