串操作实验报告.docx

上传人:b****5 文档编号:3722834 上传时间:2022-11-24 格式:DOCX 页数:6 大小:17.02KB
下载 相关 举报
串操作实验报告.docx_第1页
第1页 / 共6页
串操作实验报告.docx_第2页
第2页 / 共6页
串操作实验报告.docx_第3页
第3页 / 共6页
串操作实验报告.docx_第4页
第4页 / 共6页
串操作实验报告.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

串操作实验报告.docx

《串操作实验报告.docx》由会员分享,可在线阅读,更多相关《串操作实验报告.docx(6页珍藏版)》请在冰豆网上搜索。

串操作实验报告.docx

串操作实验报告

竭诚为您提供优质文档/双击可除

串操作实验报告

  篇一:

顺序串的基本操作实验报告

  宁波工程学院电信学院计算机教研室

  实验报告

  课程名称:

数据结构实验项目:

顺序串的基本操作

  实验人员:

徐浩学号:

10401010209班级:

计科102指导教师:

宋宏图实验位置:

计算机中心二楼实验日期:

20XX-10-13

  一、实验目的

  1)熟悉串的定义和串的基本操作。

  2)掌握顺序串的基本运算。

  3)加深对串数据结构的理解,逐步培养解决实际问题的编程能力。

  二、实验环境

  装有Visualc++6.0的计算机。

  本次实验共计2学时。

  三、实验内容

  编写一个程序,实现顺序串的各种基本运算,并在此基础上设计一个主程序。

具体如下:

  编写栈的基本操作函数

  顺序串类型定义如下所示:

  typedefstruct{

  charch[mAxsIZe];

  intlen;

  }seqstring;

  

(1)串赋值Assign(s,t)

  ?

将一个字符串常量赋给串s,即生成一个其值等于t的串s

  

(2)串复制strcopy(s,t)

  ?

将串t赋给串s

  (3)计算串长度strLength(s)

  ?

返回串s中字符个数

  (4)判断串相等strequal(s,t)

  ?

若两个串s与t相等则返回1;否则返回0。

  (5)串连接concat(s,t)

  ?

返回由两个串s和t连接在一起形成的新串。

  (6)求子串substr(s,i,j)

  ?

返回串s中从第i(1≤i≤strLength((:

串操作实验报告)s))个字符开始的、由连续j个字符组成的子串。

  (7)插入Insstr(s,i,t)

  ?

将串t插入到串s的第i(1≤i≤strLength(s)+1)个字符中,即将t的第一个字符作

  为s的第i个字符,并返回产生的新串

  (8)串删除Delstr(s,i,j)

  ?

从串s中删去从第i(1≤i≤strLength(s))个字符开始的长度为j的子串,并返回产

  生的新串。

  (9)串替换Repstr(s,s1,s2)

  ?

在串s中,将所有出现的子串s1均替换成s2。

  (10)输出串Dispstr(s)

  ?

输出串s的所有元素值

  (11)判断串是否为空Isempty(s)

  编写主函数

  调用上述函数实现下列操作:

  

(1)建立串s=“abcdefghijklmn”,串s1=“xyz”,串t=“hijk”

  

(2)复制串t到t1,并输出t1的长度

  (3)在串s的第9个字符位置插入串s1而产生串s2,并输出s2

  (4)删除s第2个字符开始的5个字符而产生串s3,并输出s3

  (5)将串s第2个字符开始的3个字符替换成串s1而产生串s4,

  s4

  (6)提取串s的第8个字符开始的4个字符而产生串s5,并输出s5

  (7)将串s1和串t连接起来而产生串s6,并输出s6

  (8)比较串s1和s5是否相等,输出结果

  程序:

  #include

  #definemAxsIZe100

  typedefstruct{

  charch[mAxsIZe];

  intlen;

  }sqstring;

  voidstrAssign(sqstring

  for(i=0;t[i]!

=\0;i++)

  s.ch[i]=t[i];

  s.len=i;

  }

  voidstrcopy(sqstring

  并输出

  for(i=0;i  s.ch[i]=t.ch[i];

  s.len=t.len;

  }

  voidstrequal(sqstrings,sqstringt){//判断串相等intsame=1,i;

  if(s.len!

=t.len){

  same=0;

  }

  else{

  for(i=0;i  if(s.ch[i]!

=t.ch[i]){

  same=0;

  break;

  }

  }

  if(same==0)

  printf("s1,s5不相等");

  else

  printf("s1,s5相等");

  printf("\n");

  }

  voidstrLength(sqstrings){//计算串长度

  printf("t1的长度:

");

  printf("%d",s.len);

  printf("\n");

  }

  sqstringconcat(sqstrings,sqstringt){//串连接sqstringstr;

  inti;

  str.len=s.len+t.len;

  for(i=0;i  str.ch[i]=s.ch[i];

  for(i=0;i  str.ch[s.len+i]=t.ch[i];

  returnstr;

  }

  sqstringsubstr(sqstrings,inti,intj){//求子串sqstringstr;

  intk;

  str.len=0;

  if(is.len||js.len)

  returnstr;

  for(k=i-1;k  str.ch[k-i+1]=s.ch[k];

  str.len=j;

  returnstr;

  }

  sqstringInsstr(sqstrings1,inti,sqstrings2){//插入intj;

  sqstringstr;

  str.len=0;

  if(is1.len+1)

  returnstr;

  for(j=0;j  str.ch[j]=s1.ch[j];

  for(j=0;j  str.ch[i+j-1]=s2.ch[j];

  for(j=i-1;j  str.ch[s2.len+j]=s1.ch[j];

  str.len=s1.len+s2.len;

  returnstr;

  }

  sqstringDelstr(sqstrings,inti,intj){//删除intk;

  sqstringstr;

  str.len=0;

  if(is.len||i+j>s.len+1)

  returnstr;

  for(k=0;k  str.ch[k]=s.ch[k];

  for(k=i+j-1;k  str.ch[k-j]=s.ch[k];

  str.len=s.len-j;

  returnstr;

  sqstringRepstr(sqstrings,inti,intj,sqstringt){//替换intk;

  sqstringstr;

  str.len=0;

  if(is.len||i+j-1>s.len)

  returnstr;

  for(k=0;k  str.ch[k]=s.ch[k];

  for(k=0;k  str.ch[i+k-1]=t.ch[k];

  for(k=i+j-1;k  str.ch[t.len+k-j]=s.ch[k];

  str.len=s.len-j+t.len;

  returnstr;

  }

  voidDispstr(sqstrings){//输出串所有元素inti;

  if(s.len>0){

  for(i=0;i  printf("%c",s.ch[i]);

  printf("\n");

  }

  }

  voidIsempty(sqstrings){//判断串是否为空if(s.len>0)

  printf("串不为空");

  else

  printf("串为空");

  printf("\n");

  }

  篇二:

串实验报告

  篇三:

字符串实验报告

  数据结构

  字符串实验

  班级:

计算机应用技术10-1学号:

10602101048姓名:

姚福刚

  一、实验目的及要求:

  掌握有关字符串的基本操作和存储结构,并编写相应的基本操作算法。

  二、实验内容:

  

(1)求字符串的长度算法

  

(2)求字符串的拷贝算法

  (3)字符串的连接算法

  (4)字符串的比较算法

  (5)字符串的逆置算法

  (6)用strtok()函数分离单词。

(选做)

  三、实验准备:

  1)计算机设备;

  2)程序调试环境的准备,如Vc6或wIn-Tc环境;

  3)实验内容的算法分析与代码设计准备。

  四、函数实现

  1、长度函数

  intstrlen(char*p)

  {intcount=0;

  while(*p!

=\0)

  {count++;

  p++;

  }

  returncount;

  }

  2、拷贝函数

  voidscopy(char*s1,char*s2)

  {intlen,i;

  len=strlen(s2);

  for(i=0;i  s1[i]=s2[i];

  s1[i]=\0;

  return;

  }

  3、连接函数

  voidstrcat(char*s1,char*s2)

  {intlen1,len2;

  len1=strlen(s1);

  scopy(s1+len1,s2);

  return;

  }

  4、比较函数

  inttrcmp(char*s1,char*s2)

  {inti=0;/*s1  while(s1[i]==s2[i])

  {if(s1[i]==\0)return0;

  i++;

  }

  return(s1[i]-s2[i]);

  }

  5、逆置函数

  voidReversestr(char*s)

  {inti,j;

  chart;

  for(i=0,j=strlen(s)-1;i  {t=s[i];

  s[i]=s[j];

  s[j]=t;

  }

  }

  五、测试(在主函数中调用函数测试功能)

  #include

  #include

  #definemAxsIZe80

  intmain(void)

  {charp1[]="",p2[]="";

  printf("\n\t

(1)p1->length=%dp2->length=%d\n",strLen(p1),strLen(p2));strcat(p1,p2);

  printf("\n\t

(2)p1=%s\n",p1);

  printf("\n\t(3)theresultis%d\n",strcmp(p1,p2));

  Reversestr(p1);

  printf("\n\t(4)p1=%s\n",p1);

  getch();

  return0;

  }

  实验截图:

  六、心得体会

  通过这次实验让我了解了什么是字符串,他是一种特殊的线性表,并了解有关字符串的基本操作和存储结构,并编写相应的基本操作算法。

  

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1