DS04-串_2010.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4.1 串的定义和基本操作 串定义:串(String)是零个或多个字符组成的有限序列。 它是字符串的简称,一般记为: S=a1a2……an (n≥0) 其中,S是串名; 用双引号(“”)括起的字符序列是串的值; ai(1≤i≤n)可以是字母、数字或其它字符; 串字符的数目n称为该串的长度。 空串与空格串 长度为零(n=0)的串称为空串(Null String),它不包含任何字符。由空格字符组成的串,称为空格串(Blank String)。它的长度为串中空格字符的个数。 子串与主串 串中任意个连续字符组成的子序列称为该串的子串。包含子串的串称为该子串的主串。 子串的位置 将子串在主串中首次出现时,该子串首字符对应的主串序列中的序号定义为子串在主串中的位置。 串的比较 当且仅当两个串的长度相等,并且各个对应位置的字符也都相同,称两个串相等; 当两个串不相等时,可按“字典顺序”区分大小(在C语言中,按字符ASCII码的大小为准)。 例如,有下列四个串s1,s2,s3,s4: s1= pro , s2= Program s3= program , s4= program□ 以上四个串彼此互不相等,且 s4>s3>s1>s2。 求子串Substr(s,pos,len,sub):从串s中的第pos个字符开始取长度为len的子串构成串sub。 子串的定位Index(s,t):在串s中寻找串t第一次出现时,串t首字符在串s中的位置。若找到,则返回该位置,否则返回0。 串插入StrInsert(s,pos,t):将串t插入在串s的位置pos上。 串删除StrDelete(s,pos,len):从串s中位置pos开始,删除len个字符。 子串替换操作Replace(s,t,v):将串s中的子串t全部替换成串v。 串的顺序存储结构,简称为顺序串。用一组地址连续的存储单元来依次存放串中的字符序列,串中相邻的字符顺序存放在相邻的的存储单元中。所谓定长,指按照预先定义的大小为每一个串分配一个固定的存储区域。 通常有两种实现方式: 第一种使用定长的字符数组存放串,一般使用一个不会在串中出现的特殊字符(如‘\0’)放在串值的末尾(不记入串长)来表示串的结束。 类型定义如下: #define MaxStrSize 256 /*串可能的最大长度*/ typedef char SeqString[MaxStrSize]; /*SeqString是顺序串类型*/ SeqString S;? /*S是一个顺序串变量*/ 这种存储方法不能直接得到串的长度,而是判断字符是否为‘\0’来确定串是否结束,串长是隐含的。当串空间最大值为MaxStrSize时,最多只能存放MaxStrSize-1个字符。 第二种不使用终结符,用一个整数length来指示串的实际长度,length-1表示串中最后一个字符的存储位置。 类型定义如下: #define MaxStrSize 256? /*最大长度*/ typedef struct { char ch[MaxStrSize]; ? int length; /*指示串的当前长度*/ }SeqString; /*SeqString是顺序串类型*/ 求串长Strlen(s) :返回串s的元素个数。 int Strlen(SeqString s) { return(s.length);} 串复制Strcpy(s,t):将串s复制到串t中。 SeqString *Strcpy(SeqString s,SeqString *t) { int i; for(i=0;is.length;i++) t→ch[i]=s.ch[i]; t→length=s.length; /*置串t的长度*/ return(t); } 串联接Strcat(s,t):将串t联接到串s的末尾形成新串,返回新串。若无法生成新串,则返回空。 Hstring *Strcat(Hstring s, Hstring t) {Hstring *new; int i; if(!new= (Hstring

文档评论(0)

飞扬的岁月 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档