第一范文网 - 专业文章范例文档资料分享平台

兰州大学数据结构课程设计实验七:文本文件单词的检索及计数

来源:用户分享 时间:2025/7/23 20:16:12 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

要求编程建立一个文本文件,每个单词不包括空格及跨行,单词由字符序列构成且区分大小写,完成以下功能:统计给定单词在文本文件中出现的总次数、检索输出某单词在文本文件中首次出现的行号及位置。

出现的问题:当选定单词是某一行最后一个单词时,记录行数的计数器会多记录一次行数.

编程环境是codeblocks,编译器是GUN-GCC,操作系统是win7-64 #include #include char* Newfile(); int Index();

char* Newfile()//建立一个新的文本文档,并将输入内容写入文本中 {

FILE *fp;

char ch,filename[10];

printf(\请输入文件名:(包括拓展名)\\n\ scanf(\ fp=fopen(filename,\ ch=getchar();

printf(\请输入单词:(请以$符号结束)\\n\ while(ch!='$') {

ch=getchar(); fputc(ch,fp);

}

fclose(fp); return filename; }

int Index(char* p)//朴素模式匹配算法 {

FILE *fp;

if((fp=fopen(p,\ {

printf(\找不到文件\\n\ exit(0); }

//将文件读取到一维数组当中 char S[100],T[20]; char ch1,ch2; ch1=fgetc(fp);

int i=0;//i用于记录主串的长度 while(ch1!='$') {

S[i]=ch1; ch1=fgetc(fp);

i++; } S[i]='$'; //建立子串

printf(\请输入你选择的单词:\\n\ ch2=getchar(); ch2=getchar();

int j=0;//j用于记录输入的子串的长度 while(ch2!='\\n') {

T[j]=ch2; ch2=getchar(); j++; }

//朴素模式匹配算法实现

int row,col;//row为列,col为行 row=1; col=1;

int m,n,q;//m为S的下标,n为T的下标,q用于换行时记录m的值 m=0; n=0; q=1;

int num=0;//num用于记录选定单词出现的次数 while(m< jbr> { if(S[m]==T[n]) { m++; n++; } else {

m=m-n+1; n=0; }; if(n==j) {

num++; if(col==1) {

row=m-n+1;

printf(\第%d个单词出现的位置是第%d行第%d个\\n\ }

else {

row=m-n-q;

printf(\第%d个单词出现的位置是第%d行第%d个\\n\ } }

if(S[m]=='\\n') {

col++; q=m; };

if(S[m]=='$') {

printf(\所选单词出现的次数是%d\\n\ } } }

int main() {

char *p;//p用于记录和传递传递用户输入的文件名 p=Newfile(); Index(p); }

兰州大学数据结构课程设计实验七:文本文件单词的检索及计数.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c38v6e76e791jxut0i36s_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top