数据结构课程设计文本编辑器内容摘要:

_str() { int i, j, ls, ct = 0。 ()。 (str, 39。 8039。 , 39。 \n39。 )。 ls = strlen(str)。 memset(next, 1, sizeof(next))。 //以上为数据的输入及预处理 求子串的前缀函数 next 使用前缀函数 next,用 KMP 算法进行匹配、查找和统计 coutstr 在文章中的出现次数为 : ctendlendl。 } 第 8个模块是查找并删除所有子串部分。 该部分会对用户在终端输入的字符串进行查找,并 将 原 文本中 所有 该 子串进行删除 ,使用接口函数 void File::Delete_str()实现,伪代码如下: void File::Delete_str() { int i, j, ls, k。 memset(visit, false, sizeof(visit))。 ()。 (str, 39。 8039。 , 39。 \n39。 )。 ls = strlen(str)。 6 memset(next, 1, sizeof(next))。 //子串读入及数据的预处理 计算前缀函数 next i = j = 0。 使用 next 函数及稍加修改的 KMP 算法 匹配并删除原文本中所有用户输入的子串 len = strlen(s)。 coutsendl。 } 7 第四章 详细设计 include iostream include fstream include cstdio include cstring using namespace std。 const int N = 80010。 class File { private: char s[N]。 char filename[260]。 char text[90]。 char str[90]。 int len, next[90]。 bool visit[N]。 ifstream fin。 void Getready()。 void Getdata()。 void Show_text()。 void Count()。 void Count_str()。 void Delete_str()。 void Help()。 public: File() { cout欢迎使用文章编辑工具 版权所有: SDUT 计科 0906 zlqendlendl。 memset(s, 0, sizeof(s))。 len = 0。 8 } void Main_Work()。 ~File() { cout谢谢您的支持,如有建议和意见,请发送到 ,谢谢合作endlendl。 } }。 void File::Getready() { cout请输入数据文件名(包括扩展名,只能有英文、 数字和点号) endlendl。 cout注意 :由于资源控制,请保证输入不超过 1000 行,每行不超过 80个字符,查询的子串长度不得超过一行 endlendl。 cout文件名 :。 /*让子串长度不超过一行是为了防止某些用户在终端中不会用 Ctrl+Z 来表示 EOF*/ } void File::Getdata() { cinfilename。 (filename)。 cout正在读取数据 ....endl。 len = 0。 while((text,81,39。 \n39。 )) { strcat(s, text)。 len += strlen(text)。 s[len] = 39。 \n39。 s[++len] = 39。 \039。 } cout数据初始化完毕 ...endlendl。 } 9 void File::Show_text() { cout您的输入文件内容如下 :endlendl。 coutsendlendl。 } void File::Help() { cout您可以使用以下命。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。