C++版数据结构串的实现与操作.doc_第1页
C++版数据结构串的实现与操作.doc_第2页
C++版数据结构串的实现与操作.doc_第3页
全文预览已结束

下载本文档

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

文档简介

#include stdlib.h #include stdio.h #include iostream.h #define STRINGMAX 80 struct string int len; char chSTRINGMAX; /和char *ch 作用是一样的 ; typedef struct string STRING; #define LEN STRINGMAX*sizeof(STRING)/* 串的定义*/void create(STRING *s); void print(STRING *s); int concat(STRING *s,STRING *t); STRING *substr(STRING *s,int start,int len); void Delete(STRING *s,int start,int len); void main() STRING *s,*t,*v; /*定义三个采用静态存储形式的串*/ t=(STRING *)malloc(LEN); /*为三个串分配相应的存储空间*/ s=(STRING *)malloc(LEN); v=(STRING *)malloc(LEN); int start,len; / int position; cout请输入串s:endl; /*创建S串*/ create(s); cout请输入串t:endl; /*创建T串*/ create(t); concat(s,t); /* 连接并输出相应的串*/ cout将串t联接串s后,新串s为 :endl; print(s); coutstart; coutlen; v=substr(s,start,len); /*求子串*/ coutn子串为 :chendl; coutstart; coutlen; Delete(s,start,len); /*删除串*/ coutn删除子串后,串s为 :endl; print(s); void create(STRING *s) char c; int i; for (i=0;(c=getchar()!=n&ichi=c; /*将输入的字符序列放入串的字符数组中*/ s-len=i; /*置串的长度*/ s-chi= 0 ; void Delete(STRING *s,int start,int len) /从start位置开始删除len长的子串 int i; if (startlen&len=0&start+lenlen)/*删除操作合法性验证*/ for(i=start+len;ilen;i+) /*从start位置开始移动元素*/ s-chi-len=s-chi; s-len=s-len-len; /*置新的长度*/ else coutcannot delete!n; STRING *substr(STRING *s,int start,int len) /取子串,从start位置开始取len长的子串int i; STRING *t; t=(STRING *)malloc(LEN); if (start=s-len) /*取子串的合法性验证*/ return(NULL); else if (len=1&lenlen-start) for(i=0;ichi=s-chstart+i; t-len=len; /*置子串长度*/ t-chi=0; return(t); else return(NULL); int concat(STRING *s,STRING *t) if(s-len+t-lenSTRINGMAX) if(!(s=(STRING *)realloc(s,(s-len+t-len)*sizeof(char) return 0; int i,j; j=s-len; for (i=0;ilen;i+) s-chi+j=t-chi; /*将串t中字符序列放入串s的尾部*/ s-chi+j= 0 ; s-len=s-len+t-len; /*置新串s的长度*/ return

温馨提示

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

评论

0/150

提交评论