资源描述:
《c语言字符串处理实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验题目字符串处理实验时间2016-5-26实验地点DS1408实验成绩实验性质□验证性□设计性√综合性教师评价:□算法/实验过程正确;□源程序/实验内容提交□程序结构/实验步骤合理;□实验结果正确;□语法、语义正确;□报告规范;其他:评价教师签名:一、实验目的1、掌握字符传在C语言中的表式。2、掌握字符传和字符的基本操作。3、掌握字符串的复制、查询、比较、连接、长度等基本C语言库函数。二、实验项目内容(实验题目)已知一维字符数组s1,s2,s3的长度为100。其内容如下:s1="a123b345c4m935689dsdfm93rmnwm93e4kr";
2、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比较字符串,最后定义一个计数
3、器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.从第一个位置开始,依次比较相邻两个位置上
4、的数据,若是逆序则交换顺序,一趟扫描后。最大的数据排到了最后面。2.不考虑已经排好的数据,重复1。2、源程序如下实验5.cpp#include"stdafx.h"#include#includevoidlength(chars1[],chars2[]);voidtimes(char*s1,char*s2);voiddeletet(char*s1,char*s2,char*s3);voidlink(char*s2,char*s3);voidbubble(char*s1);intmain(){chars1[100]="a
5、123b345c4m935689dsdfm93rmnwm93e4kr",s2[100]="m93",s3[100];length(s1,s2);times(s1,s2);deletet(s1,s2,s3);link(s2,s3);bubble(s1);return0;}a.cpp#include"stdafx.h"#include#includevoidlength(chars1[],chars2[]){intlen1=strlen(s1),len2=strlen(s2);printf("s1的有效字符个数为:%d
6、n",len1);printf("s2的有效字符个数为:%d",len2);}b.cpp#include"stdafx.h"#include#includevoidtimes(char*s1,char*s2){intlen=strlen(s2),count=0;while(((s1=strchr(s1,*s2))!=NULL)){if(strncmp(s1,s2,len)==0){count++;s1++;continue;}elses1++;}printf("s2在s1中出现的次数为:%d",count);
7、}c.cpp#include"stdafx.h"#include#includevoiddeletet(char*s1,char*s2,char*s3){intlen=strlen(s2),count=0;while(*s1!=' '){if(strncmp(s1,s2,len)==0){strcpy(s1,s1+len);s1++;count++;}else{s1++;count++;}}s1=s1-count;strcpy(s3,s1);printf("删除后的s1(即s3)为:%s",s3);}d.cpp
8、#include"stdafx.h"#include#incl