版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课题46:简易文本编辑器(2人)。要求:1) 具有图形菜单界面;2) 查找,替换(等长,不等长),插入(插串,文本块的插入)、块移动(行块,列块移动),删除;3) 可正确存盘、取盘;4) 正确显示总行数。#include #include #include #include #define MAX 10000#define _CRT_SECURE_NO_DEPRECATE/在vs中取消warning的警告void menu(); void shuru(char text);void bc(char text); void dakai(char text);void dayin(char tex
2、t);void chazhao(char text,int l);void tihan(char text,int l);int strindex(char text,char t,int i2,int l);void shanchu(char p,int l);void cs(char text);void charu(char text,int l);void tuichu(int status);char textMAX=;/文本编辑域char name20=;/文件保存的位置int status=0;/显示是否保存过的状态int ntext;/文本编辑的位置 void dakai(ch
3、ar text)system(cls); FILE *fp;char pd,ch;char name30;int i=0;printf(输入A:确定打开文件(未保存的数据将会丢失) M:返回主菜单);fflush(stdin);pd=getchar();if (pd=A|pd=a)printf(请输入要打开文件名字(例如c:a.txt));scanf(%s,name);while (fp=fopen(name,r)=NULL)printf(n打开文件失败,请重新输入要打开的文件名:);scanf(%s,name);cs(text);while(!feof(fp)ch=fgetc(fp);tex
4、ti=ch;i ; texti=0; ntext=i; fclose(fp);printf(n文件读取成功n文件内容为n);dayin(text); if (pd=M|pd=m)menu(); void bc(char text)system(cls);FILE *fp;char pd;char tmp;int i;printf(n输入【A】保存;任意键返回主菜单不保存n); fflush(stdin);pd=getchar();if (!(pd=A|pd=a)menu();else if(name20=NULL)printf(n请输入保存文件名(例如: c:a.txt):);scanf(%s
5、,name);while (fp=fopen(name,w )=NULL)printf(文件不存在,请重新输入文件名:);scanf(%s,name); printf(nA:确定;B:取消:); while(scanf(%c,&tmp)!=EOF)if (tmp=A | tmp=a) for(i=0;intext;i ) fprintf(fp,%c,texti); fclose(fp);status=1;printf(n文件保存成功n);break;if (tmp=B | tmp=b)break; void cs(char text)int i;for (i=0;intext;i )texti
6、=0;ntext=0;status=0; int strindex(char text,char t,int i2,int l) /查找要操作的数据的位置(模式匹配)int i1=l,j=0;while (i1ntext&j=i2)return(i1-i2); /返回匹配的第一个字符的下标elsereturn(-1); /模式匹配不成功void menu()system(cls);time_t timep; time (&timep);printf(%s,ctime(&timep);printf(nnnnnnnnntttWelcom to use our TXT edition system!
7、n);printf(nnttt 欢迎您使用文本编辑器软件!n);printf(nnnnnnnnnpress Enter to continue.n);getchar();loop:system(cls);printf(nnnntt*简易文本编辑器*nn);printf(tttt-0.清空内容-n);printf(tttt-1.打开文件-n);if (ntext=0)printf(tttt-2.输入内容-n); else printf(tttt-2.继续输入-n);printf(tttt-3.查找-n);printf(tttt-4.插入-n);printf(tttt-5.删除-n);printf
8、(tttt-6.替换-n);printf(tttt-7.显示内容-n);printf(tttt-8.保存-n);printf(tttt-9.退出-n);printf(ntt*选项*n);printf(ntttt输入选项0-9:);char n;fflush(stdin);n=getchar();if(n=0&n=9)switch (n)case 0: cs(text);break;case 1: dakai(text);break;case 2: shuru(text);break;case 3: chazhao(text,0);break;case 4: charu(text,1);brea
9、k;case 5: shanchu(text,0);break;case 6: tihan(text,0);break;case 7: dayin(text);break;case 8: bc(text);break;case 9: tuichu(status);default : break;elseprintf(n输入有误,请重新输入:);fflush(stdin);n=getchar();system(pause);goto loop;void chazhao(char text,int l)system(cls);int i,t,a=-1;char pattern20,bd,pd;pr
10、intf(原文为:n);dayin(text);printf(请输入您要查找的内容);scanf(%s,pattern);printf(您查找的内容是:%sn,pattern);t=strlen(pattern);loop:a=strindex(text,pattern,t,l);if (a!=-1)l=a t;int hs=1,ls=0;for (i=0;i=a;i )ls ;if (texti=n)hs ;ls=0; if (a=-1)printf(查找到结尾没有找到n输入R将重头查找;任意键返回主菜单);l=0;fflush(stdin);pd=getchar(); else print
11、f(已经找到在第%d行第%d列,输入R继续查找下一处;任意键返回主菜单,hs,ls);fflush(stdin);bd=getchar(); if (bd=R|bd=r) goto loop; if (pd=R|pd=r) l=0;chazhao(text,l);void dayin(char text)system(cls);printf(现在文本的内容为:n);printf(%sn,text); int hs=1,i;for (i=0;intext;i )if (texti=n)hs ; printf(n文本共有%d行n,hs);void shuru(char text)system(cl
12、s);printf(请输入内容(输入结束输入并返回主菜单):n);printf(%s,text);char c;int i=ntext,j=ntext;fflush(stdin); while (c=getchar()!=)texti=c;i ;ntext=i;continue;int cout=0,zf=0,h=1,hs=1,zfs=0;for(;coutntext;cout )zf ;if(textcout=n)h ;zf-;if(textcout= )zf-;for(cout=j;coutntext;cout )zfs ;if(textcout=n)hs ;zfs-;if(textcou
13、t= )zfs-;printf(统计:文本一共有%d个字符,%d行,本次输入了%d个字符,%d行n,zf,h,zfs,hs);void shanchu(char p,int l)int i,a=-1,t2=0;char x20,px,pd,pdx,c;system(cls);printf(%s,p);printf(n输入【A】执行查找删除内容;任意键返回主菜单:);fflush(stdin);px=getchar();if (px=a|px=A)printf(n输入您要删除的内容,以结束:);fflush(stdin);while (c=getchar()!=)if (c=)break;els
14、ext2=c;t2 ;continue;loop:a=strindex(p,x,t2,l);int hs=1,ls=0;for (i=0;i=a;i )ls ;if (pi=n)hs ; ls=0; if (a=-1)printf(已查找结束,您要删除的内容不存在n输入【R】重新输入要删除的内容;其他键将返回主菜单:);l=0;fflush(stdin);pdx=getchar(); else printf(你要删除的内容在第%d行第%d列n 输入【A】确定删除;输入【B】寻找下个词;其他键将返回主菜单:,hs,ls);fflush(stdin);pd=getchar();l=t2 a;if
15、(pd=a|pd=A)for(i=a;intext;i )pi=pi t2;ntext=ntext-t2;printf(删除成功,删除后的内容为:n%sn,text);else if (pd=b|pd=B)goto loop;if(pdx=r|pdx=R)shanchu(text,l);void charu(char text,int l) /向文本中插入内容system(cls);int i=0,t=0,t2=0,a=-1,b;char cr20=,pd,x500,c,d;printf(n当前文本信息为:n);printf(%s,text);printf(n输入您要在哪个内容前插入,以结束:
16、);fflush(stdin);while (c=getchar()!=) /用一个数组接收要插入在哪个内容之前if (c=)break;elsecrt=c;t ;continue;loop:a=strindex(text,cr,t,l); /查找并返回要插入的位置点int hs=1,ls=0;for (b=0;b=a;i-)texti t2=texti;for (i=0;it2;i )texti a=xi;ntext=ntext t2;printf(n当前文本信息为:n);for (i=0;i=ntext-1;i )printf(%c,texti);printf(n文本插入成功n);fflu
17、sh(stdin);getchar();if (d=r|d=R)l=0;charu(text,l);status=0;void tihan(char p,int l) /内容替换int t=0,t1=0,i,a,b;char c,th20,d,d1,bth20;int i2;system(cls);printf(n当前文本信息为:n);for (i2=0;i2=ntext-1;i2 )printf(%c,pi2);printf(n输入要被替换的内容,以结束:);fflush(stdin);while (c=getchar()!=) /t指替换前内容的长度if (c=)break;elsebth
18、t=c;t ;continue;loop:a=strindex(p,bth,t,l); /查找要被替换的内容的位置int hs=1,ls=0;for (b=0;ba;b )ls ;if (pb=n)hs ;ls=0;if (a=-1)printf(n查找到结尾没有找到要被替换的内容n输入【R】查找其他内容,按其他键返回主菜单键n);l=0;d=getchar();fflush(stdin);elseprintf(nn已经找到要查找的数据在第%d行第%d列n输入【A】继续向后查找相同内容n输入其他键将进行替换操作n请选择:,hs,ls 1);fflush(stdin);l=t a;char pd;pd=getchar();if (pd!=a&pd!=A)printf(n是否要替换该内容?nA:替换给内容;其他键返回主
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 太原城市职业技术学院《社会工作原理》2025-2026学年期末试卷
- 电力设备安装工开关柜安装考试题目及答案
- 导游资格全国导游基础知识机考试题及答案
- 手动工具制作工岗前理论实操考核试卷含答案
- 温差电电池制造工安全知识竞赛水平考核试卷含答案
- 锑白炉工岗后竞赛考核试卷含答案
- 2026年数据科学与大数据技术知识问答
- 医用光学仪器组装调试工变更管理强化考核试卷含答案
- 2026年全面解析供销社庄稼医生岗位资格考试要点及模拟题集锦
- 液氯气化处理工安全行为模拟考核试卷含答案
- 核磁共振上册氢谱
- 皮肤科常见疾病康复
- 输气管道毕业论文输气管道工程初步设计
- 第3章物流类型
- 烹饪化学教程课件
- 采矿学I第四章-矿石的损失和贫化课件
- 过程特殊特性清单1
- 湖北省仙桃市各县区乡镇行政村村庄村名居民村民委员会明细及行政区划代码
- 消防调试方案87487
- 脏腑图点穴法(精校版)
- 摄影发展史ppt课件(PPT 78页)
评论
0/150
提交评论