好文档 - 专业文书写作范文服务资料分享网站

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

天下 分享 时间: 加入收藏 我要投稿 点赞

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

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

编程环境是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); }

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

要求编程建立一个文本文件,每个单词不包括空格及跨行,单词由字符序列构成且区分大小写,完成以下功能:统计给定单词在文本文件中出现的总次数、检索输出某单词在文本文件中首次出现的行号及位置。出现的问题:当选定单词是某一行最后一个单词时,记录行数的计数器会多记录一次行数.编程环境是codeblocks,编译器是GUN-GCC,操作系统是win7-64#include
推荐度:
点击下载文档文档为doc格式
38v6e76e791jxut0i36s
领取福利

微信扫码领取福利

微信扫码分享