C语言专业课程设计字符串处理.doc
《C语言专业课程设计字符串处理.doc》由会员分享,可在线阅读,更多相关《C语言专业课程设计字符串处理.doc(17页珍藏版)》请在咨信网上搜索。
《C语言程序设计》 课程设计汇报 题 目 字符串处理 学 号 姓 名 同组人员 年级专业 09电子信息工程2班 指导老师 完成日期 年 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个函数进行调用,完成函数要求全部功效。 下面就是总程序步骤图: 开始 输入英文句子 输出英文句子 调用Delete(str)函数清除前导和后导空格,中间多出空格 输出清除空格后句子 输入要统计个数单词 调用FintCount(str)函数统计其出现次数 调用Swap(str)函数替换某个单词 输出替换后英文句子 结束 字符串处理源程序 #include <stdio.h> #include <string.h> #include <ctype.h> void Delete(char str[]) { int i,j,Length,StartBlank=0,EndBlank=0,MiddleBlank=0; Length=strlen(str); for(i=0; i<Length; i++) /* 删除前导空格 */ if(str[i]==' ') StartBlank++; else break; for(j=0; j<Length; j++) str[j]=str[j+StartBlank]; Length-=StartBlank; for(i=Length-1; i>=0; i--) /* 删除后导空格 */ if(str[i]==' ') EndBlank++; else break; Length-=EndBlank; while(EndBlank>0) { str[Length-1+EndBlank]=str[Length+EndBlank]; EndBlank--; } i=0; /* 删除中间多出空格 */ while(i<Length) { if(str[i]==' ') { if(str[i+1]==' ') { for(j=i+1; j<Length; j++) str[j]=str[j+1]; MiddleBlank++; Length--; } else i++; } else i++; } } void FindCount(char str[]) { char FindWord[20],*p1,*p2; int count=0; /* 查找单词出现次数 */ printf("Enter a Findword:\n"); gets(FindWord); p1=str; p2=FindWord; while(*p1!='\0') { if((*p1==*p2)&&(!isalpha(*(p1-1)))) while((*p1==*p2)&&(*p2!='\0')) { p1++; p2++; } else p1++; if((*p2=='\0')&&((*p1==' ')||(*p1=='\0'))) count++; /* 所查找单词完全匹配 */ p2=FindWord; /* 重置查找单词 */ } printf("FindCount:%d\n",count); } void Swap(char str[]) { char SwapWord[20],FindWord[20],*p1,*p2; int j,s,k,i=0,SwapWordLength,strLength,FindWordLength,n; printf("Enter a FindWord:\n"); gets(FindWord); printf("Enter a SwapWord:\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<SwapWordLength; k++) str[j++]=SwapWord[k]; for(s=i; s<strLength; s++) str[j++]=str[s]; while(j<strLength) 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<SwapWordLength; k++) str[j++]=SwapWord[k]; strLength=strlen(str); i+=n; p1+=n; } } p2=FindWord; } } void main() { char str[1000]; printf("Input a English sentence:\n"); gets(str); /* 输入一个英文句子 */ printf("Output English sentence:\n"); puts(str); Delete(str); /* 删除前导空格,后导空格,中间多出空格 */ printf("Delete English sentence:\n"); puts(str); FindCount(str); /* 统计某个单词出现次数 */ Swap(str); /* 查找并替换某个单词 */ printf("Swap English sentencd:\n"); puts(str); } 程序分析 一、 头文件应用 #include <stdio.h> #include <string.h> #include <ctype.h> 二、 函数应用 void Delete(char str[]) void FindCount(char str[]) void Swap(char str[]) 子函数具体代码,如: void Delete(char str[]) { int i,j,Length,StartBlank=0,EndBlank=0,MiddleBlank=0; Length=strlen(str); for(i=0; i<Length; i++) if(str[i]==' ') StartBlank++; else break; for(j=0; j<Length; j++) str[j]=str[j+StartBlank]; Length-=StartBlank; for(i=Length-1; i>=0; i--) if(str[i]==' ') EndBlank++; else break; Length-=EndBlank; while(EndBlank>0) { str[Length-1+EndBlank]=str[Length+EndBlank]; EndBlank--; } i=0; while(i<Length) { if(str[i]==' ') { if(str[i+1]==' ') { for(j=i+1; j<Length; j++) str[j]=str[j+1]; MiddleBlank++; Length--; } else i++; } else i++; } } 三、 库函数调用 输出函数调用,如: printf("Input a English sentence:\n"); 输入函数调用,如: gets(str); 程序调试截图 输入一个英文句子: 输入句子: 删除空格后句子: 统计一个单词出现频度: 用一个单词替换原来一个单词: 参考资料 [1] 谭浩强,C程序设计教程,清华大学出版社, [2] 赵永哲,李雄飞,戴秀英编著,《C语言程序设计》,科学出版社, [3] 夏宽理,赵子正编著,《C语言程序设计》,中国铁道出版社, [4] 谭浩强编著,《C程序设计》,清华大学出版社,1991年 [5] Gary J. Bronson, A First Book of ANSI C (Fourth Edition), Publishing House of Electronics Industry, . [6] Al Kelley, Ira Pohl, A Book on C: Programming in C (Fourth Edition), China Machine Press, . [7] Brian W. Kernighan, Dennis M. Ritchie, The C Programming Language, China Machine Press, . 总结 经过这次课程设计,我对很多函数有了新认识,也学会了利用多个函数。写程序过程中不停积累,不停思索,经过长时间设计和调试,最终完成了这次课程设计,这次课程设计总来说让我受益匪浅。 在程序设计过程中碰到了很多困难,在程序一次一次调试失败下更让我学会了坚持,毫不畏惧困难,在同学帮助和老师讲解下顺利完成了课程设计。 此次课程设计不仅给了我很多经验,也让我体会到了失败时焦虑和难受,也体会到了成功时兴奋和喜悦。 物理和电子信息学院课程设计评定意见 指导老师评语 关键内容包含:设计汇报内容完整性和完成情况、汇报格式规范性、经过课程设计取得收获等。 成绩: 署名: 年 月 日- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 专业课程 设计 字符串 处理
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文