【求助】 有个问题 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
【求助】 有个问题 c语言单词替换问题相关推荐
- Bailian2944 单词替换【字符串流】
2944:单词替换 总时间限制: 1000ms 内存限制: 65536kB 描述 输入一个字符串,以回车结束(字符串长度<=100).该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区 ...
- 利用自动机识别c 语言单词,第03章 词法分析与有穷自动机(2).ppt
<第03章 词法分析与有穷自动机(2).ppt>由会员分享,可在线阅读,更多相关<第03章 词法分析与有穷自动机(2).ppt(59页珍藏版)>请在人人文库网上搜索. 1.3. ...
- c语言作业 字符串替换,C语言字符串替换。解决方法
当前位置:我的异常网» C语言 » C语言字符串替换.解决方法 C语言字符串替换.解决方法 www.myexceptions.net 网友分享于:2015-04-14 浏览:0次 C语言字符串替换 ...
- R语言缺失值替换:缺失的值(NA)替换每个分组最近的非缺失值
R语言缺失值替换:缺失的值(NA)替换每个分组最近的非缺失值 目录 R语言缺失值替换:缺失的值(NA)替换每个分组最近的非缺失值
- Swift3.0语言教程替换子字符串
Swift3.0语言教程替换子字符串 Swift3.0语言教程替换子字符串,替换子字符串其实就是将字符串中的子字符串删除,然后再进行添加.为了让这一繁琐的过程变的简单,NSString提供了替换子字符 ...
- LUA实现单词替换功能
背景描述 编程或者文档处理过程, 经常遇到需要将一个单词修改为另外一个单词的情况, 例如 命名为 shall 修改 为 should. 使用工具实现, 则比较方便,不容易出错, 解放双手. 需求规格 ...
- Leetcode 648.单词替换
单词替换 在英语中,我们有一个叫做 词根(root)的概念,它可以跟着其他一些词组成另一个较长的单词--我们称这个词为 继承词(successor).例如,词根an,跟随着单词 other(其他),可 ...
- 信息学奥赛一本通(1406:单词替换)
1406:单词替换 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 9873 通过数: 5803 [题目描述] 输入一个字符串,以回车结束(字符串长度≤20 ...
- 单词替换(信息学奥赛一本通-T1406)
[题目描述] 输入一个字符串,以回车结束(字符串长度≤200).该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写.现需要将其中的某个单词替换成另一个单词,并输出替换之后的字符串. ...
最新文章
- Linux执行可执行文件提示No such file or directory的解决方法
- ggplot2 图形排版:patchwork 包简单入门
- 真人语音朗读软件_才知道,手机还自带文字转语音功能,一键按下便可实现,网友:赞...
- SQL内连接和左连接的区别 - 使用SQLite演示
- 多用户MIMO系统中的天线选择技术和用户选择技术的MATLAB仿真
- Spring Cloud构建微服务架构(七)消息总线
- 论文阅读:超高分辨率图像中快速、准确的条码检测
- 数据中心部署气流遏制系统需要考虑的十大要素
- 实战 | WebMagic 爬取某保险经纪人网站经纪人列表之网站列表爬取
- 不到一秒卖出一部!荣耀9X系列国内销售29天破300万台
- Linux虚拟化KVM-Qemu分析(十)之virtio驱动
- win2008 有几个版本?区别是什么?
- vue cli4接入环信webIM
- 22071班(8月16日作业)
- Win10 Cortana 搜索框字体颜色
- Python数据分析基础技术之scikit-learn(史上最全面)
- 数值计算之 插值法(5)分段插值,埃尔米特插值
- “spoolsv.exe应用程序错误”的解决方法
- 基础版微信模板消息开发详解,附代码PHP
- 高性能永磁交流伺服电机系统控制策略