c语言字符串算法判断实验原理,c语言字符串处理实验报告.doc

实验题目字符串处理实验时间 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

#include

void 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 s1[100]="a123b345c4m935689dsdfm93rmnwm93e4kr",s2[100]="m93",s3[100];

length(s1,s2);

times(s1,s2);

deletet(s1,s2,s3);

link(s2,s3);

bubble(s1);

return 0;

}

a.cpp

#include "stdafx.h"

#include

#include

void length(char s1[],char s2[])

{

int len1=strlen(s1),len2=strlen(s2);

printf("s1的有效字符个数为:%d\n",len1);

printf("s2的有效字符个数为:%d\n",len2);

}

b.cpp

#include "stdafx.h"

#include

#include

void 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;

}

else

s1++;

}

printf("s2在s1中出现的次数为:%d\n",count);

}

c.cpp

#include "stdafx.h"

#include

#include

voi

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值