c语言字符串处理实验报告.doc_第1页
c语言字符串处理实验报告.doc_第2页
c语言字符串处理实验报告.doc_第3页
c语言字符串处理实验报告.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验题目字符串处理实验时间 2016-5-26实验地点DS1408实验成绩 实验性质验证性 设计性 综合性教师评价:算法/实验过程正确; 源程序/实验内容提交 程序结构/实验步骤合理;实验结果正确; 语法、语义正确; 报告规范; 其他: 评价教师签名:一、实验目的1、掌握字符传在C语言中的表式。2、掌握字符传和字符的基本操作。3、掌握字符串的复制、查询、比较、连接、长度等基本C语言库函数。二、实验项目内容(实验题目)已知一维字符数组s1,s2,s3的长度为100。其内容如下: s1=a123b345c4m935689dsdfm93rmnwm93e4kr; s2=m93;要求编写实现以下功能的函数,并设计主函数进行测试。 1)求s1、s2有效字符的长度 2)统计s2在s1中出现的次数 3)将s1中出现s2的字符串删除,并将结果放入s3中。 4)将s2接在s3后。 5)对s1数组内的字符进行排序,结果还是放入s1中。 三、源程序(实验过程或算法)1、算法如下1)、调用length函数求s1、s2有效字符的长度:调用标准库函数strlen即可。2)、调用times函数统计s2在s1中出现的次数:先用strlen求出s2的长度,用strchr函数在s1中寻找s2的首地址元素,再用strncmp比较字符串,最后定义一个计数器count进行循环计数即可。3)、调用deletet函数将s1中出现s2的字符串删除,并将结果放入s3中:先用strlen求出s2的长度,再对s1进行循环判断,用strncmp比较字符串,如果相同,则调用strcpy函数来删除该字符串,最后定义一个计数器count将指针指回数组首地址,调用stccpy函数将s1复制给s3。4)、调用link函数将s2接在s3后:调用标准库函数strcat即可。5)、调用bubble函数对s1数组内的字符进行排序,结果还是放入s1中:利用冒泡排序,将s1数组升序排列。冒泡排序:1.从第一个位置开始,依次比较相邻两个位置上的数据,若是逆序则交换顺序,一趟扫描后。最大的数据排到了最后面。2.不考虑已经排好的数据,重复1。2、源程序如下实验5.cpp#include stdafx.h#include#includevoid length(char s1,char s2);void times(char *s1,char *s2);void deletet(char *s1,char *s2,char *s3);void link(char *s2,char *s3);void bubble(char *s1);int main()char s1100=a123b345c4m935689dsdfm93rmnwm93e4kr,s2100=m93,s3100;length(s1,s2);times(s1,s2);deletet(s1,s2,s3);link(s2,s3);bubble(s1);return 0;a.cpp#include stdafx.h#include#includevoid length(char s1,char s2)int len1=strlen(s1),len2=strlen(s2);printf(s1的有效字符个数为:%dn,len1);printf(s2的有效字符个数为:%dn,len2);b.cpp#include stdafx.h#include#includevoid times(char *s1,char *s2)int len=strlen(s2),count=0;while(s1=strchr(s1,*s2)!=NULL)if(strncmp(s1,s2,len)=0)count+;s1+;continue;elses1+;printf(s2在s1中出现的次数为:%dn,count);c.cpp#include stdafx.h#include#includevoid deletet(char *s1,char *s2,char *s3) int len=strlen(s2),count=0; while(*s1!=0)if(strncmp(s1,s2,len)=0)strcpy(s1,s1+len);s1+;count+;else s1+;count+; s1=s1-count;strcpy(s3,s1); printf(删除后的s1(即s3)为:%sn,s3);d.cpp#include stdafx.h#include#includevoid link(char *s2,char *s3)strcat(s3,s2);printf(连接s2后的s3为:%sn,s3);e.cpp#include stdafx.h#include#includevoid bubble(char *s1)int len=strlen(s1),i,j,t;for(i=0;ilen-1;i+)for(j=1;jlen-i;j+)if(*(s1+j)*(s1+j-1)t=*(s1+j);*(s1+j)=*(s1+j-1);*(s1+j-1)=t;printf(排序后的s1为:%sn,s1);四、源程序调试过程和(或)实验分析1、一组测试数据及数据分析全部组建后如下图:组建结果为0error(s),0warning(s),组建成功。一组测试数据如下:调试程序过程为0error(s),0warning(s),程序本身没有问题。根据这组测试数据,s1、s2有效字符个数正确 ,s2在s1出现的次数正确,删除s2后的s1(即s3)正确,连接s2后的s3正确,排序后的s1正确,故本程序编写正确。2、遇到什么问题、学到什么、体会到什么这次作为本学期最后一次实验作业也算是圆满了。感觉起来实验5比实验3、4简单一些,刚开始编的时候也挺快就把大概写出来了,然后开始纠正一些小错误。最难的一步应该算是删除s1中所有的s2吧,最开始编的时候应该是算法出错了,循环判断跟数组中指针

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论