(2) 输入要检索统计的单词;
(3) 循环读文本文件,读入一行,将其送入定义好的串中,并求该串的实
际长度,调用串匹配函数进行计数。具体描述如下:
while(不是文件结束){
读入一行并到串中; 求出串长度; 模式匹配函数计数;}
(4) 关闭文件,输出统计结果。
3)检索单词出现在文本文件中的行号、次数及其位置的实现思路是:
(1) 输入要检索的文本文件名,打开相应的文件; (2) 输入要检索统计的单词; (3) 行计数器置初值0; (4) while(不是文件结束){
读入一行到指定串中; 求出串长度; 行单词计数器0;
调用模式匹配函数匹配单词定位、该行匹配单词计数; 行号计数器加1;
if(行单词计数器!=0)输出行号、该行有匹配单词的个数以及相应的位置;}
五、模块划分 1.串的模式匹配:
穷举法:Index(S, T, pos)
S为主串,T为模式串,从pos位置开始进行
BF算法:IndexBF(SString S,SString T,int pos)
朴素的模式匹配算法,S为主串,T为模式串,从pos位置开始进行。
KMP算法:get_next(SString T, int next[])
获取字符串T对应的 next[]数组。
IndexKMP(SString S,SString T,int pos,int next[])
利用模式串T的next函数求T在主串S中第pos个字符之后的位置。
2.字符串的加密与解密:
加密:Encrypt(SString S,SString *T)
将字符串S加密后存储在T中
解密:Decrypt(SString S,SString *T)
将字符串S解密后存储到T中