文本编辑器C 代码

文本编辑器C 代码

ID:46584730

大小:88.50 KB

页数:5页

时间:2019-11-25

文本编辑器C  代码_第1页
文本编辑器C  代码_第2页
文本编辑器C  代码_第3页
文本编辑器C  代码_第4页
文本编辑器C  代码_第5页
资源描述:

《文本编辑器C 代码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、#include#includeusingnamespacestd;int*get_next(char*T,int*next);//声明get_next函数以获取next数组intKMP(char*S,char*T);//声明KMP函数调用next函数来进行查找intget_choice();//选择要执行的功能voidserach(stringS);//定义查找函数voidadd_char(string&S);//定义添加函数voidchange(string&S);//定义替换函数v

2、oiddelete_char(string&S);//定义删除函数voiddisplay(string&S);//显示函数,用于显示当前的字符串int*get_next(constchar*T,int*next){inti=0,j=-1;intlength=strlen(T);//根据T字符串将所得到的next数组值存在next指针指向数组中int*temp=next;*next=-1;while(i

3、

4、*(T+i)){i++;//如果字符串中第i个字符与从头起第j个相同,则i,j分别向后

5、移一位j++;if(*(T+i)!=*(T+j))*(next+i)=j;//当遇到第一个不相同的字符时,当前的j值就是next数组第i个元素的值else*(next+i)=*(next+j);//如果相同,则从字符串开始第j个元素的next值与当前位置的值相同}elsej=*(next+j);//如果遇到第i个元素和从头起的第j个元素不相同,则从第j个元素的next值的位置回溯}returntemp;}intKMP(stringS,stringT){intS_Length=S.length();intT_Length=T

6、.length();if(S_Length

7、

8、*(S.c_str()+i)==*(T.c_str()+j)){i++;//如果对应i,j元素相同,则依次向后错一位j++;}elsej=*(next+j);//否则通关next函数,将j指针回溯一定距

9、离}if(j>=T_Length)returni-T_Length+1;//当j==T_Length时,意味查找成功,返回开始字符所在的位置elsereturn0;//否则返回失败}intget_choice(){//获取用户输入的选项,以进行相应操作inttemp;cout<<"请输入你即将执行的操作:1——查找t2——添加t3——替换4——删除t5——显示当前字符串t6——退出你的选择:"<>temp;if(temp<7&&temp>0)//只有输入1-6时才返

10、回输入的选项returntemp;else{cout<<"你的输入有误,请重新输入你的选择:";}}}voidserach(stringS){intk;stringT;cout<<"请输入要查找的串:";cin.sync();//清空缓存区,否则将自动读入输入选项时候按下的回车键getline(cin,T);if(k=KMP(S,T))//KMP的返回值不为0即查找成功时候,if条件判断认为是真cout<<"所要查找的字符串从第"<

11、oidadd_char(string&S){intk;stringm;cout<<"请输入你想插入的位置";while(1){cin>>k;if(k>=0&&k<=S.length())//插入的位置不能再字符串外面break;elsecout<<"你输入的位置有误,请重新输入你想插入的位置:";}cout<<"请输入你要插入的字符串:";cin.sync();//清空缓存区,否则将自动读入输入选项时候按下的回车键getline(cin,m);S=S.insert(k,m);//将字符串m插到S的第k个位置上}voidch

12、ange(string&S){//调用String类将第K个字符到第m个字符替换为新字符串的函数intk,m;stringtemp;cout<<"请输入由第几个字符开始替换:";while(1){cin>>k;if(k=0)//起始位置必须小于字符串长度{cout<<"替换

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。