建立文本的检索与计数
Word自动字数统计技巧实时统计文档的字数和字符数

Word自动字数统计技巧实时统计文档的字数和字符数无论是在写作还是在编辑文档时,准确地统计字数和字符数都是必不可少的工作。
Word作为一款常用的文字处理软件,提供了方便快捷的自动字数统计功能。
本文将介绍一些Word自动字数统计的技巧,帮助您实时统计文档的字数和字符数。
1. 使用Word的自动字数统计功能Word自带了一个非常实用的字数统计功能,可以帮助您快速获取文档的字数和字符数。
您只需按下快捷键"Ctrl+Shift+G",或者在Word 的状态栏底部点击鼠标右键,在弹出的菜单中选择“字数统计”,就可以打开字数统计对话框。
2. 自定义字数统计信息Word的字数统计对话框默认显示的是字数、字符数(不含空格)和段落数。
如果您还需要统计其他信息,比如字符数(包括空格)、行数、页数等,可以在字数统计对话框中进行设置。
只需勾选对应的选项,然后点击确定即可。
3. 统计部分文本的字数和字符数有时候我们只需要统计文档中的某一部分的字数和字符数,而不是整个文档的统计信息。
在这种情况下,可以使用Word的选定内容统计功能。
选择您想要统计的文本部分,然后按下快捷键"Ctrl+Shift+G"或右键点击状态栏底部的字数统计,即可在弹出的对话框中看到选定内容的字数和字符数。
4. 实时统计文档的字数和字符数除了上述方法外,Word还提供了实时统计文档字数和字符数的功能。
在Word的状态栏底部,可以看到一个显示字数和字符数的区域。
默认情况下,它只显示文档的字数,没有字符数的统计信息。
您可以右键点击该区域,在弹出的菜单中选择“显示字符数”,即可同时显示字数和字符数。
5. 设置自动更新字数统计为了使字数统计信息能够自动更新,您可以在Word的选项中进行相应设置。
点击Word的“文件”选项卡,然后选择“选项”。
在弹出的对话框中,选择“校对”选项,勾选“在保存时更新字数和属性”。
这样,每次保存文档时,Word都会自动更新文档的字数统计信息。
Word文档如何实现高效的文档搜索和检索

Word文档如何实现高效的文档搜索和检索在当今数字化办公的时代,我们每天都会处理大量的 Word 文档。
如何在众多的文档中快速准确地找到所需的信息,成为了提高工作效率的关键。
下面,我将为您详细介绍如何实现高效的 Word 文档搜索和检索。
一、利用 Word 自带的搜索功能Word 软件本身就提供了强大的搜索工具。
在菜单栏的“编辑”选项中,您可以找到“查找”或“替换”功能。
1、简单搜索通过输入关键词,Word 会在当前文档中快速定位到包含该关键词的位置。
您还可以选择区分大小写、全字匹配等选项,以更精确地找到您想要的内容。
2、高级搜索点击“查找”或“替换”窗口中的“更多”按钮,将展开更多的搜索选项。
您可以设置搜索的范围,比如仅在当前段落、整个文档或者多个文档中进行搜索。
还可以根据格式、特殊字符等条件进行筛选,大大提高搜索的准确性。
二、设置文档的标题和目录为了方便搜索和检索,在编写文档时,应该养成设置标题和目录的好习惯。
1、标题使用 Word 中的标题样式(如“标题1”、“标题2”等)对文档的主要章节和段落进行标记。
这样,在搜索时,可以根据标题快速定位到相关的章节。
2、目录通过 Word 的自动生成目录功能,创建文档的目录。
不仅在阅读时方便跳转,在搜索时也能快速了解文档的结构和大致内容。
三、利用文档属性Word 文档的属性中包含了很多有用的信息,如作者、主题、关键字等。
1、填写属性在保存文档之前,花一点时间填写这些属性字段。
输入与文档内容相关的准确信息,有助于在搜索时更精准地找到该文档。
2、基于属性搜索在 Windows 资源管理器中,右键点击 Word 文档,选择“属性”,然后切换到“详细信息”选项卡。
在这里,可以看到文档的属性信息,并可以根据这些信息进行搜索。
四、使用索引对于篇幅较长、内容复杂的文档,可以考虑创建索引。
1、标记索引项在文档中,选中需要作为索引项的词语或段落,然后点击“引用”选项卡中的“标记索引项”。
建立文本的检索与计数

建立文本的检索与计数1 引言本程序主要实现文本文件单词的检索与计数,正文包括:对文本文件单词的检索与计数程序的详细要求,对程序的分析,勾画程序思路及内容的流程图,程序代码,程序运行相关的截图,以及我们在本次程序中的详细分工和收获。
1.1 课程设计目的在本程序设计中,主要通过给定位置的串匹配算法,实现文本文件单词的查找,计数和记录单词的位置和行号。
在C程序设计中我们对于算法的具体实现过程有一个深刻的理解,除了算法本身外,须借助一些辅助数据结构,在本程序中借用字符串对数据进行存储和输出操作。
通过循环比较的方法,查找出单词的个数和位置。
同时培养自己的算法设计和算法分析能力,提高综合运用所学的理论知识和方法独立分析和解决问题的能力。
训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的工作方法、作风和相互合作的精神。
1.2 课程设计内容及要求要求编程建立一个文本文件,每个单词不包含空格且不跨行,单词由字符序列构成且区分大小写;统计给定单词在文本文件中出现的总次数;检索输出某个单词出现在文本中的行号、在该行中出现的次数以及位置。
该设计要求可分为三个部分实现:其一,建立文本文件,文件名由用户用键盘输入;其二,给定单词的计数,输入一个不含空格的单词,统计输出该单词在文本中的出现次数;其三,检索给定单词,输入一个单词,检索并输出该单词所在的行号、该行中出现的次数以及在该行中的相应位置。
(1)建立文本文件。
(2)给定单词的计数。
(3)检索单词出现在文本文件中的行号、次数及其位置。
(4)主控菜单程序的结构。
①头文件包含。
②菜单选项包含:建立文件、单词定位、单词计数、退出程序。
③选择1-4执行相应的操作,其他字符为非法。
2 设计思路与方案2.1 课程设计思路课程设计要求是实现文本文件单词的检索与计数,所以主要从两大块进行程序设计,一是单词的计数和检索的程序设计,二是文本文件写入字符串的程序设计。
进行单词计数和检索的程序设计时,首先用结构体定义字符串,然后再考虑通过母串代表文件文本,用子串代表单词,然后通过母串和子串的循环比较,确定母串是否存在子串,子串出现的次数以及位置。
Word自动字数统计技巧实时统计文档的字数和字符数

Word自动字数统计技巧实时统计文档的字数和字符数Word自动字数统计技巧实时统计文档的字数和字符数在日常文档编辑和撰写过程中,准确统计字数和字符数是非常重要的。
Word作为最常用的文字处理软件之一,提供了自动字数统计的功能,可以方便地实时获取文档的字数和字符数。
本文将介绍一些使用Word自动字数统计的技巧,帮助您更高效地进行文档编辑工作。
一、使用Word中的字数工具栏Word中的字数工具栏提供了一个方便快捷的方式来实时统计文档的字数和字符数。
您可以按照以下步骤来使用:1. 打开Word文档,在菜单栏中点击“查看”选项卡。
2. 在工具栏的“显示/隐藏”组中,勾选“字数”选项框。
3. 弹出的字数工具栏会显示当前文档的字数统计信息,包括总字数、字符数(包括空格)和段落数。
通过使用字数工具栏,您可以随时掌握文档的字数情况,对于需要严格限制字数的任务非常有用。
二、使用快捷键统计字数除了通过字数工具栏来统计字数,Word还提供了一些便捷的快捷键操作。
以下是一些常用的快捷键:1. 字数统计:同时按下“Ctrl”和“Shift”键,并同时点击文档的任意位置,即可弹出字数统计窗口,显示当前文档的字数统计信息。
2. 字数显示:同时按下“Ctrl”和“Shift”键,并按下“G”键,即可在状态栏上方显示当前文档的字数和字符数。
通过掌握这些快捷键操作,您可以更加高效地进行字数统计。
三、使用宏命令批量统计字数对于需要统计多个文档的字数的情况,可以使用宏命令来实现批量统计。
下面是一个简单的示例:1. 打开Word文档,按下“Alt”和“F11”键,进入宏编辑界面。
2. 在“插入”菜单中,选择“模块”选项。
3. 在宏编辑界面中,输入以下宏命令:Sub CountAllDocs()Dim Doc As DocumentDim TotalWords As LongFor Each Doc In DocumentsTotalWords = TotalWords + Doc.Words.CountNext DocMsgBox "所有文档的字数总计:" & TotalWordsEnd Sub4. 点击“保存”并退出宏编辑界面。
文本文件单词的检索与计数

软件综合课程设计文本文件单词的检索与计数实时监控报警系统二〇一四年六月文本文件单词的检索与计数1.问题陈述要求编程建立一个文本文件,每个单词不包含空格且不跨行,单词由字符序列构成且区分大小写;统计给定单词在文本文件中出现的总次数;检索输出某个单词出现在文本中的行号、在该行中出现的次数以及位置。
该设计要求可分为三个部分实现:其一,建立文本文件,文件名由用户用键盘输入;其二,给定单词的计数,输入一个不含空格的单词,统计输出该单词在文本中的出现次数;其三,检索给定单词,输入一个单词,检索并输出该单词所在的行号、该行中出现的次数以及在该行中的相应位置。
(1).建立文本文件(2)给定单词的计数(3)检索单词出现在文本文件中的行号、次数及其位置(4)主控菜单程序的结构①头文件包含②菜单选项包含建立文件、单词定位、单词计数、退出程序③选择1-4执行相应的操作,其他字符为非法。
2.程序代码#include<stdio.h>#include<string.h>#include<iostream>#define MaxStrSize 256 //根据用户需要自己定义大小using namespace std;typedef struct {char ch[MaxStrSize]; //ch是一个可容纳256个字符的字符数组int length;} SString;//定义顺序串类型int PartPosition (SString s1,SString s2,int k){ int i,j;i=k-1;//扫描s1的下标,因为c中数组下标是从0开始,串中序号相差1 j=0;//扫描s2的开始下标while(i<s1.length && j<s2.length){if(s1.ch[i]==s2.ch[j]){ i++;j++; //继续使下标移向下一个字符位置}else{i=i-j+1; j=0;} }if (j>=s2.length)return i-s2.length;elsereturn -1;//表示s1中不存在s2,返回-1//表示s1中存在s2,返回其起始位置} //函数结束void CreatTextFile(){SString S;char fname[10],yn;FILE *fp;printf("输入要建立的文件名:");scanf("%s",fname);fp=fopen(fname,"w");yn='n';//输入结束标志初值while(yn=='n'||yn=='N'){printf("请输入一行文本:");gets(S.ch);gets(S.ch);S.length=strlen(S.ch);fwrite(&S,S.length,1,fp);fprintf(fp,"%c",10);//是输入换行printf("结束输入吗?y or n :");yn=getchar();}fclose(fp);//关闭文件printf("建立文件结束!");}void SubStrCount(){FILE *fp;SString S,T;//定义两个串变量char fname[10];int i=0,j,k;printf("输入文本文件名:");scanf("%s",fname);fp=fopen(fname,"r");printf("输入要统计计数的单词:");cin>>T.ch;T.length=strlen(T.ch);while(!feof(fp)){ //扫描整个文本文件// fread(&S.ch,1,sizeof(S),fp);//读入一行文本 memset(S.ch,'\0',256);fgets(S.ch,100,fp);S.length=strlen(S.ch);k=0; //初始化开始检索位置while(k<S.length-1) //检索整个主串S{j=PartPosition(S,T,k);//调用串匹配函数if(j<0 ) break;else {i++;//单词计数器加1k=j+T.length;//继续下一字串的检索 }}}printf("\n单词%s在文本文件%s中共出现%d次\n",T.ch,fname,i);}//统计单词出现的个数void SubStrInd(){ FILE *fp;SString S,T; //定义两个串变量char fname[10];int i,j,k,l,m;int wz[20]; //存放一行中字串匹配的多个位置printf("输入文本文件名:");scanf("%s",fname);fp=fopen(fname,"r");printf("输入要检索的单词:");scanf("%s",T.ch);T.length=strlen(T.ch);l=0; //行计数器置0while(!feof(fp)) { //扫描整个文本文件//fread(&S,sizeof(S),1,fp); //读入一行文本memset(S.ch,'\0',256);fgets(S.ch,256,fp);S.length=strlen(S.ch);l++; //行计数器自增1k=0;//初始化开始检索位置i=0; //初始化单词计数器while(k<S.length-1) //检索整个主串S{ j=PartPosition(S,T,k); //调用串匹配函数if(j<0) break;else {i++;//单词计数器加1wz[i]=j;//记录匹配单词位置k=j+T.length;//继续下一字串检索}}if(i>0){ printf("行号:%d,次数:%d,位置分别为:",l,i);for(m=1;m<=i;m++) printf("%4d",wz[m]+1);printf("\n");}}}//检索单词出现在文本文件中的行号、次数及其位置int main(){ void CreatTextFile(),SubStrCount(),SubStrInd();int xz;do {printf("* * * * * * * * * * * * * * * * * * * ** * * * *\n");printf("*文本文件的检索、字串的统计及定位*\n");printf("* * * * * * * * * * * * * * * * * * * ** * * * *\n");printf("* 1. 建立文本文件*\n");printf("* 2. 单词字串的计数*\n");printf("* 3. 单词字串的定位*\n");printf("* 4. 退出整个程序*\n");printf("* * * * * * * * * * * * * * * * * * * ** * * * *\n");printf(" 请选择(1--4) ");scanf("%d",&xz);switch(xz) {case 1 : CreatTextFile();break;case 2 : SubStrCount();break;case 3 : SubStrInd();break;case 4 : return 0;default:printf("选择错误,重新选\n");}}while(1);}3.运行结果4.设计体会与总结我的课程设计题目是文本文件单词的检索与计数。
Word中的字数统计功能掌握文档的篇幅

Word中的字数统计功能掌握文档的篇幅在使用Microsoft Word进行写作时,我们经常需要掌握文档的篇幅,特别是在有字数限制的情况下。
Word提供了一个方便且实用的字数统计功能,使我们能够准确地了解到自己已经写了多少字,从而更好地掌握文档的篇幅。
本文将介绍如何使用Word中的字数统计功能,并分享一些关于字数统计的技巧和经验。
一、使用Word的字数统计功能要使用Word中的字数统计功能,只需按照以下简单的步骤操作:1. 打开Microsoft Word,并创建一个新的文档。
2. 在文档中编写你的文章或文字内容。
3. 在状态栏的右侧,你会看到一个显示字数的计数器。
通过点击计数器,你可以打开详细的字数统计窗口。
4. 在字数统计窗口中,你将看到包括字符数、字数、段落数和页数等信息。
根据需要,你可以选择显示或隐藏特定的统计项。
5. 如果你需要将文档中的某一部分或整个文档的字数进行统计,可以通过选中相应的文字来获得准确的字数统计。
值得注意的是,Word的字数统计功能会自动排除一些不计入字数的元素,例如空格、换行符、图形等。
因此,你可以放心地使用这个功能,得到准确的字数统计结果。
二、字数统计的技巧和经验除了基本的字数统计功能外,以下是一些在使用Word时关于字数统计的技巧和经验,帮助你更好地掌握文档的篇幅:1. 在开始写作之前,确定字数限制。
将字数限制作为一个目标,有助于你掌握写作进度和篇幅。
2. 使用Word的分页和分节功能来控制文档的篇幅。
分页和分节可以使你的文档更加有条理,便于读者阅读和编辑。
3. 对于较长的文档,可以使用Word的大纲功能或标题样式来创建层次结构。
这样不仅可以提高可读性,还有助于你对文档的结构和篇幅进行掌握。
4. 如果你需要在规定的字数范围内撰写文章,并且文字篇幅有限,可以考虑缩短句子长度、精简表达、删除冗余的信息等方法来控制字数。
5. 在写作过程中,及时使用Word的字数统计功能,以便了解自己已经写了多少字,从而及时调整写作进度和篇幅。
如何在word中实现文档智能检索和查找

如何在word中实现文档智能检索和查找如何在 Word 中实现文档智能检索和查找在日常的工作和学习中,我们经常需要处理大量的 Word 文档。
当文档数量众多、内容繁杂时,如何快速准确地找到我们需要的信息就变得至关重要。
下面,我将为您详细介绍如何在 Word 中实现文档智能检索和查找,让您能够轻松应对各种文档处理需求。
一、利用 Word 自带的查找功能Word 提供了基本的查找功能,通过快捷键 Ctrl + F 或者在菜单栏中选择“编辑” “查找”,即可打开查找对话框。
在查找对话框中,您可以输入要查找的文本内容,然后 Word 会自动在文档中定位到第一个匹配的位置。
如果您需要进行更精确的查找,可以点击“更多”按钮,展开更多的查找选项。
例如,您可以选择区分大小写、全字匹配、使用通配符等。
区分大小写选项在查找特定的英文单词或缩写时非常有用。
比如,当您查找“Apple”时,如果不勾选区分大小写,那么“apple”也会被视为匹配项。
全字匹配选项则可以确保查找的结果是完整的单词,而不是包含在其他单词中的部分字符。
比如,查找“the”时,如果不勾选全字匹配,那么“other”中的“the”也会被找到。
通配符则为查找提供了更大的灵活性。
常用的通配符有“”和“?”,“”可以代表任意字符序列(包括空字符序列),“?”可以代表任意单个字符。
例如,“e”可以匹配“apple”、“bee”、“see”等,而“b?t”可以匹配“bat”、“bet”、“but”等。
二、利用 Word 的高级查找和替换功能除了基本的查找功能,Word 还提供了高级查找和替换功能。
通过快捷键 Ctrl + H 或者在菜单栏中选择“编辑” “替换”,即可打开替换对话框。
在替换对话框中,您不仅可以查找文本,还可以将查找到的文本替换为其他内容。
在高级查找和替换功能中,您可以设置更多的查找条件和替换选项。
比如,您可以指定查找的范围(整个文档、选定内容、某一节等)、格式(字体、字号、颜色等)、特殊字符(段落标记、制表符、分页符等)。
Word中的自动字数统计和校验功能准确统计字符数

Word中的自动字数统计和校验功能准确统计字符数Microsoft Word是一款广泛使用的文字处理软件,它提供了许多实用的功能来帮助用户高效地撰写文档。
其中,自动字数统计和校验功能是一个非常实用的工具,能够自动统计文字的字符数,帮助用户准确计算文字数量。
本文将介绍Word中的自动字数统计和校验功能,并详细说明其准确统计字符数的原理与方法。
一、自动字数统计功能的使用方法在Word中,自动字数统计功能非常简单易用。
用户只需要在打开的Word文档中,点击左下角的状态栏,即可显示字数统计信息。
在状态栏中,可以看到包括字符数、单词数、段落数等统计数据。
这些数据会随着用户的编辑实时更新,方便用户时刻了解当前文档的字数情况。
此外,用户还可以通过以下步骤进行更加详细的字数统计:1. 在Word中选择“工具”菜单,然后选择“字数”;2. 在弹出的对话框中,可以看到详细的字数统计信息,包括字符数、单词数、段落数等;3. 用户可以根据需要勾选“包括脚注和尾注”、“包括文本框和形状”等选项,以便统计更全面的字数信息。
通过以上操作,用户可以快速、准确地获取当前文档的字数统计数据,并进行必要的编辑调整。
二、自动校验功能的使用方法除了字数统计功能外,Word还提供了自动校验功能,用于检查文档中的错误或问题,并提供相应的修正建议。
其中,自动校验功能的核心之一便是准确统计字符数。
下面我们将介绍自动校验功能的使用方法及其准确统计字符数的原理。
在Word中,用户只需要点击左上角的“文件”菜单,然后选择“选项”,即可打开Word的选项设置。
在选项设置中,选择“校对”选项卡,可以看到“自动校对选项”下的“写作工具”设置。
在“写作工具”中,用户可以勾选“自动拼写检查”和“自动语法检查”等选项,以便在用户输入文字时自动进行校验。
具体到字符数的校验,用户可以在“自动校对选项”下的“显示”设置中,勾选“标记不连续的行”,以便在文档中出现超出限定字数的情况时,自动标记出来。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 引言本程序主要实现文本文件单词的检索与计数,正文包括:对文本文件单词的检索与计数程序的详细要求,对程序的分析,勾画程序思路及内容的流程图,程序代码,程序运行相关的截图,以及我们在本次程序中的详细分工和收获。
1.1课程设计目的在本程序设计中,主要通过给定位置的串匹配算法,实现文本文件单词的查找,计数和记录单词的位置和行号。
在C程序设计中我们对于算法的具体实现过程有一个深刻的理解,除了算法本身外,须借助一些辅助数据结构,在本程序中借用字符串对数据进行存储和输出操作。
通过循环比较的方法,查找出单词的个数和位置。
同时培养自己的算法设计和算法分析能力,提高综合运用所学的理论知识和方法独立分析和解决问题的能力。
训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的工作方法、作风和相互合作的精神。
1.2课程设计内容及要求要求编程建立一个文本文件,每个单词不包含空格且不跨行,单词由字符序列构成且区分大小写;统计给定单词在文本文件中出现的总次数;检索输出某个单词出现在文本中的行号、在该行中出现的次数以及位置。
该设计要求可分为三个部分实现:其一,建立文本文件,文件名由用户用键盘输入;其二,给定单词的计数,输入一个不含空格的单词,统计输出该单词在文本中的出现次数;其三,检索给定单词,输入一个单词,检索并输出该单词所在的行号、该行中出现的次数以及在该行中的相应位置。
(1)建立文本文件。
(2)给定单词的计数。
(3)检索单词出现在文本文件中的行号、次数及其位置。
(4)主控菜单程序的结构。
①头文件包含。
②菜单选项包含:建立文件、单词定位、单词计数、退出程序。
③选择1-4执行相应的操作,其他字符为非法。
2 设计思路与方案2.1课程设计思路课程设计要求是实现文本文件单词的检索与计数,所以主要从两大块进行程序设计,一是单词的计数和检索的程序设计,二是文本文件写入字符串的程序设计。
进行单词计数和检索的程序设计时,首先用结构体定义字符串,然后再考虑通过母串代表文件文本,用子串代表单词,然后通过母串和子串的循环比较,确定母串是否存在子串,子串出现的次数以及位置。
用j表示子串开始比较的位置,用i表示比较过程子串中字母的位置,通过j和i的累加,循环比较字符是否相等。
最后通过j与子串长度的大小关系,判断母串中是否存在子串以及存在的位置和次数。
对于文本单词的检索与计数的程序设计,分为两部分。
第一部分是通过调用fget将文本写入字符串数组,然后调用串匹配函数,查找显示单词在文本中出现的次数;第二部分是通过fget将文本写入字符串数组然后调用串匹配函数,查找显示单词在文本中出现的次数然后根据sub数组输入单词出现的位置。
2.2程序所用的功能函数程序设计当中涉及到的功能函数较多,具体如下表2-1所示:表2-1功能函数列表2.3 课程设计流程图主函数设计流程如图2.1:图2.1程序流程图串匹配设计流程如图2.2:图2.2程序流程图3详细实现3.1数据结构体设计定义结构体typedef struct{char Ss[MaxStrSize]; //Ss是一个可容纳1024个字符的字符数组int length;} SeqString; //定义顺序串类型3.2功能函数实现(1)给定位置的串匹配:int PartPosition(SeqString S,SeqString T,int k) 将T字符数组中的从0开始与S字符数组的字符逐一比较。
当j大于等于T.length时表示S字符数组中存在T字符数组,返回T字符数组开始的位置。
否则说明S字符数组中没有T字符数组。
(2)建立文本文件函数:void CreateTextFile()用C语言I/O流输入名字建立一个文件。
(3)文本文件单词计数函数:void SubStrCount()将文件字符串写入一个数组。
调用给定为位置的串匹配,查找记录单词个数。
(4)检索单词出现在文本文件中的行号、位置及在该行中出现的次数:void SubStrInd()将文件字符串写入一个数组。
调用给定为位置的串匹配,记录单词个数,出现的位置。
3.3函数分析(1)int PartPosition(SeqString S,SeqString T,int k)本函数的作用是给定位置的串匹配,存在就返回子串的位置。
不存在返回-1 int PartPosition(SeqString S,SeqString T,int k){int i,j;i=k-1;j=0;while(i<S.length && j<T.length){if(S.Ss[i]==T.Ss[j]){i++;j++;}else{i=i-j+1;j=0;}}if(j>=T.length)return i-T.length;elsereturn -1;}(2)void CreateTextFile()本函数的作用是输入一个名称,建立文本文件void CreateTextFile(){SeqString S;char filename[10],flags;FILE *fp;printf("输入要建立的文件名:");scanf(" %s",filename);fflush(stdin);fp=fopen(filename,"w");flags='n';while(flags=='n'||flags=='N'){printf("输入一行文本:");gets(S.Ss);fflush(stdin);S.length=strlen(S.Ss);fwrite(&S,S.length,1,fp);printf("结束输入吗? <Y/N>:");flags=getchar();fflush(stdin);}fclose(fp);printf("建立文件结束!\n");}(3) void SubStrCount()本函数的作用是将void CreateTextFile()中输入的字符串,写入一个数组。
然后调用int PartPosition(SeqString S,SeqString T,int k)函数记录要查找的单词出现的次数。
void SubStrCount(){FILE *fp=NULL;SeqString S,T;char filename[20];int i=0,j,k;while(true){printf("输入文本文件名:");scanf("%s",filename);fp=fopen(filename,"r");if(fp==NULL){printf("输入文件名不存在。
\n");}elsebreak;}printf("输入要统计计数的单词:"); scanf(" %s",T.Ss);T.length=strlen(T.Ss);while(!feof(fp)){memset(S.Ss,'\0',MaxStrSize);fgets(S.Ss,MaxStrSize,fp);S.length=strlen(S.Ss);k=1;while(k<S.length-1){j=PartPosition(S,T,k);if(j<0)break;else{i++;k=j+T.length;}}}printf("\n单词%s在文本文件%s中共出现%d次\n",T.Ss,filename,i);}(4)void SubStrInd()本函数的作用是本函数的作用是将void CreateTextFile()中输入的字符串,写入一个数组。
然后调用int PartPosition(SeqString S,SeqString T,int k)函数记录要查找的单词出现在文本文件中的行号、位置及在该行中出现的次数void SubStrInd(){FILE *fp;SeqString S,T;char filename[10];int i,j,k,line,m;int Sub[20];while(true){printf("输入文本文件名:");scanf("%s",filename);fp=fopen(filename,"r");if(fp==NULL){printf("输入文件名不存在。
\n");}elsebreak;}printf("输入需要检索的单词:");scanf(" %s",T.Ss);T.length=strlen(T.Ss);line=0;while(!feof(fp)){memset(S.Ss,'\0',MaxStrSize);fgets(S.Ss,MaxStrSize,fp);S.length=strlen(S.Ss);line++;k=1;i=0;while(k<S.length-1){j=PartPosition(S,T,k);if(j<0){break;}else{i++;Sub[i]=j;k=j+T.length;}}if(i>0)printf("行号:%d,次数:%d,位置分别为:",line,i);for(m=1;m<=i;m++)printf("%4d",Sub[m]);printf("\n");}}4运行环境与结果4.1运行环境系统开发平台为Windows8,程序设计工具使用codeblocks_13.12,程序设计语言采用C语言。
程序完成后,对程序进行调试与改进。
4.2运行结果4.2.1 进入程序时的菜单,供选择,如图4.1。
图4.1开始菜单4.2.2 选择1,输入名称和数据,如图4.2。
图4.2 输入数据4.2.3选择2,输入要查找的单词,输出单词出现的次数,如图4.3。
图4.3查找单词的次数4.2.4选择4,输入要查找的单词,输出单词的位置,如图4.4。
图4.4查找单词的位置4.2.5结束程序,如图4.5。
图4.5 结束程序5结束语一周的奋斗之后,这次数据结构的课程设计终于做完了。
通过这次设计我们也着实又感受了一次编程的乐趣,从中也学到了不少知识。
感受最深的一点是:以前用编程,只是注重如何编写函数能够完成所需要的功能,似乎没有明确的战术,只是凭单纯的意识和简单的语句来堆砌出一段程序。