- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
本章学习要点
第四章串储备与根本操作的实现
|精.
|品.
|可.
|编.
|辑.
|学.
|习.
|资.
|料.
*
|
*
|
*
|
*
|
|欢.
|迎.
|下.
|载.
◆熟识串的相关概念以与串与线性表的关系
◆重点把握串的定长储备、堆安排储备的表示方法与根本操作的实现
◆明白串的各种储备结构,能依据需要合理选用串的储备结构解决实际问题
“串〞 (string) ,是字符串的简称,它是一种特别的线性表,其特别性在于组成线性表的数据元素是单个字符;字符串在运算机处理实际问题中使用特别广泛,比如人名、地名、 商品名、设备名等均为字符串;同样在文字编辑、自然语言懂得和翻译、源程序的编辑和修 改等方面,都离不开对字符串的处理;
串的定义
串(string) 是由 n 个字符组成的有限序列,记为: S=〞a0a1a2?an-1 〞 (n ≥ 0) ;
其中, S 是串的名字,字符序列 a0a1a2?an-1 是串的值, ai (0 ≤ i ≤ n-1) 可以是字母、数字或其他字符元素;由于在 C 语言系统中数组元素的下标是从 0 开头的,所以串中所含元素的序号等于该元素的下标值加 1;串中所含字符的个数 n 称为该串的长度, 长度为 0 的字符串称为空串
〔null string 〕;
从串的定义可以看出,串实际上是数据元素为字符的特别的线性表;例如:
〔 1〕A=“X123〞
(
长度为
4 的串 )
〔 3〕C=“Bei Jing 〞
(
长度为
8 的串 )
〔 4〕D=“〞
(
长度为
0 的空串 )
〔 5〕E=“This is a string
〞
( 长度为
16 的串 )
〔 6〕F=“ is a 〞
(
长度为
6 的串 )
子串、主串和位置
串中任意连续的字符组成的子序列称为该串的子串;相应地,包含子串的串称为主串;串中的字符在串序列中的序号称为该字符在该串中的位置;子串的第一个字符在主串中的位 置称为子串在主串中的位置;明显,串为其自身的子串,并规定空串为任何串的子串;明显, 在不考虑空子串的情形下,一个长度为 n 的字符串具有 n(n+1)/2 个子串;
例如:
在上例的 (6) 中串 F 就是 (5) 中串 E 的子串, 且子串 F 在主串 E 中的位置是 5;由于空格符也是一个字符,所以在串 G=“abc defghne 〞中包含有子串“ c def 〞 , 而串 “cdef 〞不是串G的子串;串 G中第一个字符‘ e’的位置是 6,其次个字符‘ e’的位置是 11;
串的比拟
假如两个串的长度相等且对应位置上的字符一样,如此称这两个串相等;两个串 A、B 的比拟过程是:从前往后逐个比拟对应位置上的字符的 ASCII 码值,直到不相等或有一个字符 串完毕为止,此时的情形有以下几种:
|精.
|品.
|可.
|编.
|辑.
|学.
|习.
|资.
|料.
*
|
*
|
*
|
*
|
|欢.
|迎.
|下.
|载.
〔1〕两个串同时完毕,表示 A 等于 B;
〔2〕A 中字符的 ASCII 码值大于 B 中相应位置上字符的 ASCII 码值或 B 串完毕,表示 A 大于 B;
〔3〕B 中字符的 ASCII 码值大于 A 中相应位置上字符的 ASCII 码值或 A 串完毕,表示 A 小于 B;
例如:
“abc〞=“abc〞,“ abc〞“abcd〞,“ abxy〞“abcdefg 〞,“ 132〞“123456〞, “ABab〞“abAB〞,“ 3+2〞“2+3〞;
空格串
由一个或多个空格字符组成的串称为空格串,空格串的长度为串中所含空格字符的个数;在串操作中不要将空格串和空串混淆;
尽管串的定义和线性表极为相像,但是串的根本操作和线性表有很大差异;在线性表的根本操作中,大多以单个元素作为操作对象,比如对线性表的查找、拜访、插入、删除和排序等;而在串的根本操作中,通常以串整体或串的一局部〔子串〕作为操作对象,比如子串的查找、截取子串、删除一个子串、插入子串和子串替换等操作;
串的根本操作主要有:
〔1〕初始化串 StrAssign(T,chars) 由字符串常量 chars 生成字符串 T 的操作;
〔2〕串复制 StrCopy(T,S) 由串 S 复制生成串 T 的操作;
〔3〕串比拟 Strpare(S,T) 假如 S=T 返回 0, ST 返回正数, ST 返回负数;
〔4〕求串长度 StrLength(S) 返回串 S 的长度;
〔5〕串连接 Concat(T,S1,S2) 将串 S1 和 S2 连接起来生成串 T 的操作;
〔6〕求子串 SubString(Sub,S,pos,len) 以串 S 中 pos 位置开头的 len 个字符生成子串
Sub 的操作;
〔7〕串查
原创力文档


文档评论(0)