- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
简单的行编辑器(C语言)
简单的行编辑器
【要求】
(1) 设置一个简单的行编辑器,每行以回车结束
(2) 数据以文件形式存储
(3) 编辑器具有查找、替换、修改数据的功能
201-7-9。请把所有的注释信息提取出来就可以写程序设计报告。
typedef struct LINE {
char text[szLINE]; /*文本内容*/
struct LINE * next; /*链表指针*/
}L;
/*简写无类型整数*/
typedef unsigned int U; /*定义12个行编辑命令的标准格式*/
typedef void (*FUNC)(L **, char*); /*定义12个标准行编辑命令的关键字*/
char keywords[CMDS][8]={
quit, help, load, save,
view, count, append, insert,
erase, edit, lookup, replace
}; /*end keywords*/
/*清空链表操作*/
void clear(L ** lines)
{ L *a =0, *b=0;
if(!lines) return ;
a = *lines;
while(a) {
b=a-next ;
free(a);
a=b;
} /*end while*/
*lines=0;
} /*end clear*/
/*在链表中根据行号index调出指定的行*/
L *locate(L *lines, U index)
{ L *t=lines; U i = 0;
if(!t) return 0;
if(index == 0) return t;
for(i=0; iindex;i++) {
t=t-next;
if(!t) return 0;
}/*next*/
return t;
}/*end locate*/
/*浏览命令,如果f存在则以带行号格式保存文件(如果f==stdout则打印到屏幕上),浏览范围为from到to(行号)。view(lines, 0, 0, 0)表示统计已加载到内存的文本行数量*/
int view(L * lines, FILE * f, U from, U to)
{L *t=lines; U index=0;
while(t) {
index ++;
if(f index = from index = to) fprintf(f, %d: %s, index, t-text);
t=t-next;
}/*end while*/
return index;
}/*end view*/
/*在当前文档中根据关键字进行有哪些信誉好的足球投注网站,并将有哪些信誉好的足球投注网站结果打印出来*/
void lookup(L * lines, char * string)
{L *t=0; U index = 0;
if(!string) return ;
t=lines;
while(t) {
index ++;
if(strstr(t-text , string)) printf(%d: %s, index, t-text );
t=t-next;
}/*end while*/
}/*end lookup*/
/*在一行文本中执行替换命令,把所有关键字替换为新关键字*/
void rpc(char * string, char * key, char * replacement)
{ char fine[szLINE], *x=0, *y=0, *z=0;
int la=0, lb=0, r=0;
if(!string || !key || !replacement) return ;
memset(fine, 0, szLINE);
x=string; y=fine;
/*首先记录新旧关键字长度*/
la=strlen(key);
lb=strlen(replacement);
do { /*用指针逐个比较*/
r = memcmp(x, key, la);
if(r){/*如果关键字不匹配则复制字符串*/
*y=*x;
x++; y++;
}else{/*如果关键字匹配则替换字符串*/
memcpy(y, replacement, lb);
x += la; y += lb;
}/*end if*/
}while(*x);
/*将替换完成的结果返回*/
memcpy(string, fine, szLINE);
}/*end rpc*/
/*全文替换*/
void replace(L * lines, char * string, char * replacement)
{L *t=0;U index=0;
if(!string || !lin
您可能关注的文档
最近下载
- 教你三步查看老婆微信聊天记录.docx VIP
- 城市轨道交通站务管理(化工社版):任务3.4.ppt VIP
- 2024金风GW115−2000风机运行规程.docx
- 机械制造技术 教学课件 作者 姜晶 刘华军 刘金萍 21406 机械制造技术.ppt VIP
- 机械制造技术教学课件作者姜晶刘华军刘金萍21406机械制造技术幻灯片.ppt VIP
- 运用HFMEA品管工具预防老年住院患者跌倒发生率(护理部临床多病区)医院品质管理案例大赛获奖案例.pptx
- 地下工程防水技术规范).doc VIP
- 学堂在线 中医与诊断-学做自己的医生 章节测试答案.docx VIP
- 【00015】英语(二)自学教程.pdf VIP
- 城市轨道交通站务管理(化工社版):任务3.ppt VIP
文档评论(0)