【求助】 有个问题 c语言单词替换问题

replace oldfile newfile oldword newword<回车>

命令如上  把旧文件中的旧单词替换成新单词  然后输入到新文件中去。我的问题是程序会一直往新文件里面打印字符串不会停止。

代码如下,希望有大大可以帮我解答一下。谢谢啦!

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <string.h>
 4 void main(int argc,char *argv[])
 5 {
 6     int ischar(FILE *in,char *a);//用来判断从此处开始是否有单词和要替换的匹配
 7     FILE *in,*out;
 8     char *o,*n;//o是老单词,n是新单词
 9     if(argc!=5)
10     {
11         printf("参数不对!\n");
12         exit(0);
13     }
14     if((in=fopen(argv[1],"r"))==NULL)
15     {
16         printf("指定文件有错!\n");
17         exit(0);
18     }
19     if((out=fopen(argv[2],"w"))==NULL)
20     {
21         printf("新文件打开有错!\n");
22         exit(0);
23     }
24     printf("success");
25     o=argv[3];//要被替换的单词
26     n=argv[4];//要用来替换的新单词
27     while(!feof(in))
28     {
29         
30         if(ischar(in,o))
31         {
32           fputs(n,out);
33         }
34         else
35         {
36           fputc(fgetc(in),out);
37         }
38 
39     }
40 
41 }
42 int ischar(FILE *in,char *a)//判断从此处开始是否有单词和要替换的匹配
43 {
44       int n=strlen(a),x;
45       char b[20];//得到一个字符串进行比较
46       fgets(b,n+1,in);//这个时候in的指针已经往后移了n+1个了
47       x=(int)strlen(b);
48       if(x<0) return 0;
49       if(strcmp(b,a)==0)
50       {
51           printf("1");//为了方便分析
52           return 1;
53       }
54       else
55       {
56           fseek(in,-x,1);//指针移回去
57            printf("%d\n",x);//为了方便分析
58           return 0;
59       }
60 }

 

转载于:https://www.cnblogs.com/nearlyZhou/p/3489889.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值