兰州大学数据结构课程设计实验七:文本文件单词的检索及计数
来源:互联网 发布:天普弘盛教育 知乎 编辑:程序博客网 时间:2024/04/29 19:46
要求编程建立一个文本文件,每个单词不包括空格及跨行,单词由字符序列构成且区分大小写,完成以下功能:统计给定单词在文本文件中出现的总次数、检索输出某单词在文本文件中首次出现的行号及位置。
出现的问题:当选定单词是某一行最后一个单词时,记录行数的计数器会多记录一次行数.
编程环境是codeblocks,编译器是GUN-GCC,操作系统是win7-64
编写者:兰州大学2013级计算机系hsy
#include<stdio.h>
#include <stdlib.h>
char* Newfile();
int Index();char* Newfile()//建立一个新的文本文档,并将输入内容写入文本中
{
FILE *fp;
char ch,filename[10];
printf("请输入文件名:(包括拓展名)\n");
scanf("%s",filename);
fp=fopen(filename,"w+");
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,"r"))==NULL)
{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",num,col,row);
}
else
{
row=m-n-q;
printf("第%d个单词出现的位置是第%d行第%d个\n",num,col,row);
}
}
if(S[m]=='\n')
{
col++;
q=m;
};
if(S[m]=='$')
{
printf("所选单词出现的次数是%d\n",num);
}
}
}int main()
{
char *p;//p用于记录和传递传递用户输入的文件名
p=Newfile();
Index(p);}
来源:心倾城的网易博客
欢迎分享本文,转载请保留出处!
- 兰州大学数据结构课程设计实验七:文本文件单词的检索及计数
- 文本文件单词的检索及计数
- 文本文件单词的检索与计数
- 基于C语言的文本文件单词的检索与计数
- 兰州大学数据结构实验课 程序
- 数据结构课程设计实验报告
- C语言 文件单词的检索与计数
- 实验及课程设计
- 文本文件英文单词的计数
- Zedboard---实验七秒计数
- 检索单词的个数
- 【数据结构实验七】查找
- Hadoop MapReduce Streaming小实验:单词计数
- 大二暑假时写的数据结构课程设计——文件检索
- 数据结构的课程设计
- 数据结构-图的课程设计
- 单词计数的mapreduce原理
- 课程设计 航班信息的查询与检索
- 营销推广一
- 利用汇编语言编程实现在屏幕上显示A-Z26个大写英文字母。
- 利用汇编语言编程实现屏幕上输出十进制数字00-29功能
- 编程实现:在屏幕上中央显示出红底黄字。
- STL学习_萃取技术__type_traits
- 兰州大学数据结构课程设计实验七:文本文件单词的检索及计数
- 利用C语言实现:输入两个字符串,统计一个字符串在另一个字符串中出现的次数 。
- 第9周项目3—人数不定的工资类
- 数据结构中二叉树的的存储、遍历、交换子树、统计二叉树的深度
- 如何在64位的windows下搭建汇编开发环境?
- 利用C语言写一个可以进行乘方运算的程序
- listview长按后拖动item交换位置的帮助类
- Windows无法正常启动的解决方案
- 重装Windows系统的教程