欢迎来到天天文库
浏览记录
ID:58663977
大小:150.50 KB
页数:13页
时间:2020-10-15
《字符串的查找与替换.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、中南林业科技大学课程设计报告设计名称:数据结构课程设计姓名:李思贤学号:专业班级:2012级计算机科学与技术系(院):计算机与信息工程学院设计时间:2013~2014学年第二学期设计地点:电子信息楼机房成绩:指导教师评语:签名:年月日1.设计目的《数据结构》课程主要介绍最常用的数据结构,阐明各种数据结构内在的逻辑关系,讨论其在计算机中的存储表示,以及在其上进行各种运算时的实现算法,并对算法的效率进行简单的分析和讨论。进行数据结构课程设计要达到以下目的:(1)了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;(2)初步掌握软
2、件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;(3)提高综合运用所学的理论知识和方法独立分析和解决问题的能力;(4)训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。2.课程设计任务与要求问题描述:打开一篇英文文章,在该文章中找出所有给定的单词,然后对所有给定的单词替换为另外一个单词。基本要求:1.符合课题要求,实现相应功能;2.操作方便易行;3.根注意程序的实用性、安全性;3.需求分析打开一篇英文文章,在该文章中找出所有给定的单词,然后对所有给定的单词替换为另外一一个单词用户
3、:学生开发者:李思贤4.概要设计程序头设计对程序作简单介绍以及输出程序制作人的基本信息。main(){printf("ttt数据结构课程设计");printf("ttt题目:串的查找与替换");printf("ttt专业:计算机科学与数学");printf("ttt学号:");printf("ttt姓名:李思贤");printf("t程序作用:打开一篇英语作文,在该文章中找出所有给定的单词,然后对t所有给定的单词替换为另一个单词再存盘。");printf
4、("************************************");}主函数voidmain()通过for循环对字符串进行匹配,找到匹配的单词然后将copy的单词字符放入strTwo数组中,不匹配的单词也放入数组strTwo中完成替换,最后把strTwo中的字符放回文件中完成操作。5.功能模块详细设计系统流程图:串的查找和替换字符串的替换字符串的查找记录查找到的字符位置,用输入的字符替换,并输出到文本从文本读入英语文章从输入端输入文字,与文本内容对比,完成字符串的查找。串的查找与替换要实现的功能是:打开一篇英文文章,
5、在该文章中找出所有给定的单词,然后对所有给定的单词替换为另外一个单词,再存盘。首先实现程序比较简单的功能,即:输入要替换的单词和给定单词gets(keyWords);gets(copyWords)。然后实现程序打开文件的功能。最后编写最核心的替换功能,首先用关键字来匹配要查找的单词,第一个单词匹配上的话再判断这个关键字在不在单词的首字母上,否则不匹配,主要是要实现替换单词的功能不替换其他单词中的字符串。然后匹配第二个字母,这样一次类推的判断。不匹配的单词直接放入strTwo数组中,匹配的单词先替换然后再放入strTwo数组中。4.2核心代
6、码打开文件if((fp=fopen("filename","r"))==NULL){printf("文件打开失败!");exit(0);}查找和替换单词while(!feof(fp))/*读文件*/{strOne[countOne++]=fgetc(fp);/*这是从指定稳中取得一个字符strOne[countOne++]=fgets(fp);这是从指定文章中取得一个字符串*/}countOne--;/*减去最后一个文件结束字符*/for(i=0;i7、f((''==strOne[i-1])8、9、(''==strOne[i-1])10、11、(0==i)){flag=1;countFlag=i+1;for(j=1;keyWords[j]!=' ';j++){if(keyWords[j]!=strOne[countFlag++])/*是否匹配*/{flag=0;break;}}if((''==strOne[countFlag])12、13、(''==strOne[countFlag])14、15、(EOF==strOne[countFlag]))/*2.检查单词后的一个字符*/{if(1==flag)/*16、若匹配,则进行拷贝*/{i=countFlag-1;for(j=0;copyWords[j]!=' ';j++){strTwo[countTwo++]=copyWords[j];}}}els
7、f((''==strOne[i-1])
8、
9、(''==strOne[i-1])
10、
11、(0==i)){flag=1;countFlag=i+1;for(j=1;keyWords[j]!=' ';j++){if(keyWords[j]!=strOne[countFlag++])/*是否匹配*/{flag=0;break;}}if((''==strOne[countFlag])
12、
13、(''==strOne[countFlag])
14、
15、(EOF==strOne[countFlag]))/*2.检查单词后的一个字符*/{if(1==flag)/*
16、若匹配,则进行拷贝*/{i=countFlag-1;for(j=0;copyWords[j]!=' ';j++){strTwo[countTwo++]=copyWords[j];}}}els
此文档下载收益归作者所有