C语言课程设计字符串处理.docx
- 文档编号:10229077
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:14
- 大小:217.34KB
C语言课程设计字符串处理.docx
《C语言课程设计字符串处理.docx》由会员分享,可在线阅读,更多相关《C语言课程设计字符串处理.docx(14页珍藏版)》请在冰豆网上搜索。
C语言课程设计字符串处理
《C语言程序设计》
课程设计报告
题目
字符串处理
学号
姓名
同组人员
年级专业
09电子信息工程2班
指导教师
完成日期
2010
年
6
月
19
日
1.C语言程序设计目的要求……………………………………………3
2.字符串处理设计要求……………...……………………………….3
3.字符串处理流程图…………………………………………………...3
4.字符串处理源程序…………………………………...………………5
5.程序分析………………………………………….…………………9
5.1头文件应用………………………………………………………9
5.2函数的应用………………………………………………………9
5.3库函数的调用…………………………………………………...10
6.程序调试截图...………………………………………………………11
7.参考资料……………………………………………………………...13
8.总结…………………………………………………………………...14
9.物理与电子信息学院课程设计评定意见…………………………15
C语言程序设计目的要求
在教师指导下,学生根据选定的课题,综合运用所学程序设计的知识,完成问题分析、模块设计、代码编写、程序调试和运行等训练任务。
通过课程设计,初步锻炼运用所学基础知识解决实际问题的能力,掌握软件开发的基本过程和基本方法以及良好的编程风格,培养在软件开发中相互合作的团队意识
字符串处理设计要求
1)从键盘输入一个英文句子并保存在字符数组中;
2)能删除多余的空格:
单词之间只留一个空格,句子前后无空格;
3)能统计某单词出现的频度;
4)能替换某个单词。
法实现也可。
字符串处理流程图
这个程序调用3个功能函数,分别起处理删除空格、查找某个单词出现频度、用一个单词替换原来的一个单词。
最后,在主程序里对这3个函数进行调用,完成函数要求的所有功能。
下面就是总的程序流程图:
字符串处理源程序
#include
#include
#include
voidDelete(charstr[])
{
inti,j,Length,StartBlank=0,EndBlank=0,MiddleBlank=0;
Length=strlen(str);
for(i=0;i if(str[i]=='')StartBlank++; elsebreak; for(j=0;j str[j]=str[j+StartBlank]; Length-=StartBlank; for(i=Length-1;i>=0;i--)/*删除后导空格*/ if(str[i]=='')EndBlank++; elsebreak; Length-=EndBlank; while(EndBlank>0) { str[Length-1+EndBlank]=str[Length+EndBlank]; EndBlank--; } i=0;/*删除中间多余空格*/ while(i { if(str[i]=='') { if(str[i+1]=='') { for(j=i+1;j str[j]=str[j+1]; MiddleBlank++; Length--; } elsei++; } elsei++; } } voidFindCount(charstr[]) { charFindWord[20],*p1,*p2; intcount=0;/*查找单词出现的次数*/ printf("EnteraFindword: \n"); gets(FindWord); p1=str; p2=FindWord; while(*p1! ='\0') { if((*p1==*p2)&&(! isalpha(*(p1-1)))) while((*p1==*p2)&&(*p2! ='\0')) {p1++;p2++;} elsep1++; if((*p2=='\0')&&((*p1=='')||(*p1=='\0')))count++;/*所查找单词完全匹配*/ p2=FindWord;/*重置查找单词*/ } printf("FindCount: %d\n",count); } voidSwap(charstr[]) { charSwapWord[20],FindWord[20],*p1,*p2; intj,s,k,i=0,SwapWordLength,strLength,FindWordLength,n; printf("EnteraFindWord: \n"); gets(FindWord); printf("EnteraSwapWord: \n"); gets(SwapWord); p1=str; p2=FindWord; strLength=strlen(str);/*原英文句子长度*/ FindWordLength=strlen(FindWord);/*查找单词长度*/ SwapWordLength=strlen(SwapWord);/*替换单词长度*/ n=SwapWordLength-FindWordLength;/*查找和替换单词长度的差*/ while(*p1! ='\0') { if((*p1==*p2)&&(! isalpha(*(p1-1)))) while((*p1==*p2)&&(*p2! ='\0')) {p1++;p2++;i++;} else{p1++;i++;} if((*p2=='\0')&&((*p1=='')||(*p1=='\0')))/*所查找单词完全匹配*/ { if(n<0) { j=i-FindWordLength; for(k=0;k str[j++]=SwapWord[k]; for(s=i;s str[j++]=str[s]; while(j str[j++]='\0'; strLength=strlen(str); i+=n; p1+=n; } else { for(s=strLength+n;s>i;s--) str[s]=str[strLength--]; j=i-FindWordLength; for(k=0;k str[j++]=SwapWord[k]; strLength=strlen(str); i+=n; p1+=n; } } p2=FindWord; } } voidmain() { charstr[1000]; printf("InputaEnglishsentence: \n"); gets(str);/*输入一个英文句子*/ printf("OutputEnglishsentence: \n"); puts(str); Delete(str);/*删除前导空格,后导空格,中间多余空格*/ printf("DeleteEnglishsentence: \n"); puts(str); FindCount(str);/*统计某个单词出现次数*/ Swap(str);/*查找并替换某个单词*/ printf("SwapEnglishsentencd: \n"); puts(str); } 程序分析 一、头文件的应用 #include #include #include 二、函数的应用 voidDelete(charstr[]) voidFindCount(charstr[]) voidSwap(charstr[]) 子函数详细代码,如: voidDelete(charstr[]) { inti,j,Length,StartBlank=0,EndBlank=0,MiddleBlank=0; Length=strlen(str); for(i=0;i if(str[i]=='')StartBlank++; elsebreak; for(j=0;j str[j]=str[j+StartBlank]; Length-=StartBlank; for(i=Length-1;i>=0;i--) if(str[i]=='')EndBlank++; elsebreak; Length-=EndBlank; while(EndBlank>0) { str[Length-1+EndBlank]=str[Length+EndBlank]; EndBlank--; } i=0; while(i { if(str[i]=='') { if(str[i+1]=='') { for(j=i+1;j str[j]=str[j+1]; MiddleBlank++; Length--; } elsei++; } elsei++; } } 三、库函数的调用 输出函数的调用,如: printf("InputaEnglishsentence: \n"); 输入函数的调用,如: gets(str); 程序调试截图 输入一个英文句子: 输入句子: 删除空格后的句子: 统计一个单词出现频度: 用一个单词替换原来的一个单词: 参考资料 [1]谭浩强,C程序设计教程,清华大学出版社,2007年 [2]赵永哲,李雄飞,戴秀英编著,《C语言程序设计》,科学出版社,2003年 [3]夏宽理,赵子正编著,《C语言程序设计》,中国铁道出版社,2006年 [4]谭浩强编著,《C程序设计》,清华大学出版社,1991年 [5]GaryJ.Bronson,AFirstBookofANSIC(FourthEdition),PublishingHouseofElectronicsIndustry,2006. [6]AlKelley,IraPohl,ABookonC: ProgramminginC(FourthEdition),ChinaMachinePress,2004. [7]BrianW.Kernighan,DennisM.Ritchie,TheCProgrammingLanguage,ChinaMachinePress,2006. 总结 通过这次课程设计,我对很多的函数有了新的认识,也学会了运用多种函数。 写程序的过程中不断积累,不断思考,经过长时间的设计与调试,最终完成了这次的课程设计,这次课程设计总的来说让我受益匪浅。 在程序的设计过程中遇到了很多的困难,在程序一次一次的调试失败下更让我学会了坚持,毫不畏惧困难,在同学的帮助和老师的讲解下顺利的完成了课程设计。 此次课程设计不仅给了我很多的经验,也让我体会到了失败时的焦急和难受,也体会到了成功时的兴奋和喜悦。 物理与电子信息学院课程设计评定意见 指导教师评语 主要内容包括: 设计报告内容的完整性和完成情况、报告格式的规范性、通过课程设计取得的收获等。 成绩: 签名: 年 月 日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 字符串 处理