| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 159 人关注过本帖
标题:C语言对文档进行指定字符串进行查找和替换
只看楼主 加入收藏
钟鼓窈窕
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2019-4-26
结帖率:0
  问题点数:0  回复次数:3   
C语言对文档进行指定字符串进行查找和替换
串的查找和替换
【问题描述】:打开一篇英文文章(TXT文件),在该文章中找出所有给定的单词,然后对所有给定的单词替换为另外一个单词,再存盘。

我的思路是,打开文件然后进行给定字符串与文件中进行对比,如果符合就进行修改,然后再保存到文档中。可是这只出现在屏幕上,原文档没有修改,怎么做啊。
#include "string.h"
#include "stdio.h"

void str_replace(char * cp, int n, char * str)
{
    int lenofstr;
    int i;
    char * tmp;
    lenofstr = strlen(str);
    //str3比str2短,往前移动
    if(lenofstr < n)  
    {
        tmp = cp+n;
        while(*tmp)
        {
            *(tmp-(n-lenofstr)) = *tmp; //n-lenofstr是移动的距离
            tmp++;
        }
        *(tmp-(n-lenofstr)) = *tmp; //move '\0'   
    }
    else
            //str3比str2长,往后移动
        if(lenofstr > n)
        {
            tmp = cp;
            while(*tmp) tmp++;
            while(tmp>=cp+n)
            {
                *(tmp+(lenofstr-n)) = *tmp;
                tmp--;
            }   
        }
    strncpy(cp,str,lenofstr);
}

int main()
{

       char str1[1024];
    char str2[100],str3[100];     
       int i,len,count=0;
       char c;
       char *p;      
      
       printf("\n请输入要查找的字符串和用于替换的字符串(中间用空格隔开): ");
       scanf("%s",str2);
        scanf("%s",str3);
        //read string from news.txt
    FILE *file=freopen("test2.txt","r",stdin);
    i=0;
    c = getchar();
    while(c!=EOF)
    {
        str1[i] = c;
        i++;
        c = getchar();
    }
    str1[i]    = '\0';
   
    //开始查找字符串str2
       p = strstr(str1,str2);
       while(p)
    {
        count++;
        //每找到一个str2,就用str3来替换
        str_replace(p,strlen(str2),str3);
        p = p+strlen(str3);
        p = strstr(p,str2);
    }      
       printf("\ncount = %d\n",count);
    printf("Result = %s\n",str1);  
    fprintf(file,"%s",str1);
    fclose(file);
}
2019-05-10 17:53
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:版主
威 望:385
帖 子:13235
专家分:50980
注 册:2012-10-18
  得分:0 
c 代码 你发这里 干嘛   要是用python 太简单的不要的不要 代码不会超过10行

DO IT YOURSELF !
2019-05-11 12:24
钟鼓窈窕
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2019-4-26
  得分:0 
回复 2楼 wp231957
我也想用python啊,老师要求不让用
2019-05-11 21:44
王介武
Rank: 1
等 级:新手上路
帖 子:2
专家分:4
注 册:2019-4-18
  得分:0 
回复 楼主 钟鼓窈窕
写入文件之前, 先把文件关闭, 再打开.
2019-05-12 09:12







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.059599 second(s), 8 queries.
Copyright©2004-2019, BCCN.NET, All Rights Reserved