怎么样实现C语言对指定内容的查找与替换

C语言 码拜 9年前 (2016-04-07) 1077次浏览
C语言文本指针这项一直没学好。怎么样实现C语言对指定内容的查找与替换现在本人有一个文本文件其开头部分如下图,假如本人希望键盘输入809,5,将原文本文件的N=20,M=3,替换为第二张图所示的N=809,M=5。
也就是说实现输入任何两个数,都可以将文本中的N,M值改为本人输入的值,请教各位老师同学了。
怎么样实现C语言对指定内容的查找与替换
怎么样实现C语言对指定内容的查找与替换
解决方案

40

//所谓修改删除文件a某位置的内容,其实是读打开文件a,再将‘a中修改删除位置之前的内容+修改删除的内容+a中修改删除位置之后的内容’保存到文件b,关闭文件a,
//删除文件a,将文件b改名为与之前文件a相同的名字,仅此而已。
#include <stdio.h>
FILE *fi,*fo;
char ln[256],c;
int N,M,v;
int main() {
    fi=fopen("APDL3.mac","r");
    if (NULL==fi) {
        printf("Can not open file APDL3.mac!\n");
        return 1;
    }
    fo=fopen("tmp.mac","w");
    if (NULL==fo) {
        fclose(fi);
        printf("Can not create file tmp.mac!\n");
        return 2;
    }
    while (1) {
        printf("Input N,M:");fflush(stdout);
        rewind(stdin);
        if (2==scanf("%d,%d",&N,&M)) break;
    }
    while (1) {
        if (NULL==fgets(ln,256,fi)) break;
        if (2==sscanf(ln,"N=%d%c",&v,&c)) {
            if ("\n"==c) {
                fprintf(fo,"N=%d\n",N);
                continue;
            }
        }
        if (2==sscanf(ln,"M=%d%c",&v,&c)) {
            if ("\n"==c) {
                fprintf(fo,"M=%d\n",M);
                continue;
            }
        }
        fprintf(fo,"%s",ln);
    }
    fclose(fo);
    fclose(fi);
    remove("APDL3.mac");
    rename("tmp.mac","APDL3.mac");
    return 0;
}

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明怎么样实现C语言对指定内容的查找与替换
喜欢 (0)
[1034331897@qq.com]
分享 (0)