第4章 字符串new.pptVIP

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章 字符串new

* 《数据结构与算法》 廊坊师范学院 数学与信息科学学院 第四章 字符串 ★ ★ ★ ★ ★ 第四章 字符串 本章重点难点 重点: 串的逻辑结构,存储结构及其基本运算 难点: 串的模式匹配算法. 4.1 字符串的基本概念 ●字符串:由零个多个字符组成的有限序列。是一种特殊的线性结构,其基本组成元素是单个字符. S : “c1c2c3…cn” 其中,S 是串名字 “c1c2c3…cn”是串值 ci 是串中字符 n 是串的长度,n = 0 称为空串。 例如, S = “Tsinghua University”。 空串和空格串 空串:是长度为0的串---“” 空格串:是由1或多个空格组成的串----“ ” ●串的相关概念: (1)串长:字符串中所包含的字符个数 (2)子串:串中任意连续字符组成的子序列,空串是所有串的子串。 “He” “llo” “e” “Hl” “Hello”的真子串: × 特别地: 任意串是其自身的子串。 (3)通常将子串在主串中首次出现时,该子串首字符对应的主串中的序号定义为子串在主串中的位置。 例如,设A和B分别为 A = “This is a string” B = “is” 则 B 是 A 的子串,A 为主串。 B 在 A 中出现了两次,首次出现所对应的主串位置是2(从0开始)。 因此,称 B 在 A 中的位置为2。 4.1.3 字符串的抽象数据类型 求串长 串复制 串连接 取子串 . . . 常用的字符串操作: Class string{ private: … … public: string(); string(char *s); int length( ); string copy( const char *s); string insert(const char c, const int index); string substr( const int s,const int len); … }; 串的抽象数据类型定义 4. 2 字符串的存储结构和实现 ●由于指针所占存储空间大于一个字符所占空间,因此顺序存储结构是串的主要物理实现方式 H e l l o \0 顺序储存结构采用类型为char的一维定长数组 顺序存储结构适合字符串长度变化不大的情况 优点:访问字符串中单个字符或者连续的一组字符方便 缺点:不适合进行插入和删除操作 C/C++语言的标准字符串(string.h) char s[M] 定义字符串变量 如:char s1[12]=“hello Word!”; char s2[8]=“2008”; char s3[6]; 末尾带结束标记’\0’表示字符串的结束 P 83 表4.1 标准串函数 #include string.h C/C++标准串运算的实现举例 int strcmp(const char *s1,const char *s2) { int i=0; while (s2[i]!=‘\0’||s1[i]!=‘\0’) { if (s1[i]s2[i]) return 1; else if(s1[i]s2[i]) return -1; i++; } if (s1[i]= =‘\0’s2[i]!=‘\0’) return -1; else if(s2[i]= =‘\0’s1[i]!=‘\0’) return 1; return 0;} 4.2.2 字符串类class String的存储结构 C++中,String类采用动态变长的存储结构。 String类封装了串的属性,并提供一系列的方法来访问这些属性。 属性或类的数据成员包括: 字符序列 字符序列的大小和长度 序列中字符的类型 字符的特点

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档