第一范文网 - 专业文章范例文档资料分享平台

《数据结构》课程实验报告四关于字符串的操作

来源:用户分享 时间:2025/7/7 1:27:45 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

《数据结构》课程 实验报告四 串

班级:418教育技术班 学号: 2018744109 姓名: 邓远义 实验目的和要求:

1.理解掌握串的有关概念和基本运算实现。 2.掌握模式匹配等串的典型算法。

二、实验内容:(给出具体的说明文字和拍摄的图片)

1.已知字符串采用顺序存储结构定义如下,请编写函数int SubString(SeqString *sub, SeqString S, int pos, int len),在字符串 s 中从第 i 个位置起取长度为 len 的子串复制到sub中,复制成功函数返回1,否则返回0。 #include \

#include \

#define MAXLEN 100

typedef struct{ char ch[MAXLEN];

int last;//指向最后一个字符的位置

} SeqString;

/*请将本函数补充完整,并进行测试*/

int SubString(SeqString *sub, SeqString s, int pos, int len) { int i;

if(pos<0||pos>s.last||len<1||len>s.last-pos) {

sub->last=0; return 0 ; } else {

for(i=0;i

sub->ch[i]=s.ch[i+pos-1];//(i+pos是数组下标所以要减一) }

sub->last=len;

sub->ch[i]='\\0';//不能丢,会乱码,为什么?目前不清楚 //是不是len的值没赋引起的? return 1; } }

void main() {

SeqString sub,s; int pos,len,n;

printf(\请输入一个字符串(以回车结束):\\n\

gets(s.ch);

s.last=strlen(s.ch);//strlen()返回字符串的长度

printf(\请输入pos和len的值:\

scanf(\

n=SubString(&sub,s, pos, len);

if(n)//n!=NULL {

puts(sub.ch); } else

printf(\取串不成功\\n\}

/*请输入一个字符串(以回车结束): DengYuanYi

请输入pos和len的值:4 4

Yuan烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫.

会乱码的原因是需要加结束符sub->ch[i]='\\0'; 否则直到把maxsize填满 */

2. 已知字符串采用顺序存储结构定义如下,请设计算法函数int StrDelete(SeqString *S, int pos, int len),在字符串 s 中删除从第 i 个位置开始,长度为 len 的子串,删除成功,函数返回值为1,否则为0。 #include \

#include \

#define MAXLEN 100

typedef struct

{ char ch[MAXLEN]; int last;

} SeqString;

/*请将本函数补充完整,并进行测试*/

/*函数功能:在串S中删除从序号pos起len个字符 */

《数据结构》课程实验报告四关于字符串的操作.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c522sn9s1nt1h1yk7phhy1xkfw968ko01b09_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top