3.字符串汇编.ppt

  1. 1、本文档共64页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.字符串汇编

第3章 字符串 本章的基本内容是: 3.1 串类型定义 3.2 串的表示和实现 3.3 串的模式匹配算法 2017-4-10 3.1 串类型定义 串是一种特殊的线性表,它的数据元素仅由一个字符组成。 串(String) 是由零个或多个任意字符组成的有限序列,一般记作:s="s1 s2 … sn"。其中s 是串名;双引号为串的定界符,双引号内的内容(s1 s2 … sn)为串值,引号本身不是串的内容。Si (1=i=n)是串的元素; n为串的长度,表示串中所包含的字符个数,当n=0时,称为空串,通常记为Ф。 串中任意多个连续的字符组成的子序列称为该串的子串,Ф为特殊的子串。 包含子串的串称为主串。 子串的第一个字符在主串中的序号称为子串的位置。 当且仅当两个串的长度相等且对应字符都相同时,称为两个串相等。 3.1 串类型定义 抽象数据类型: ADT String { 数据对象:D={ ai | ai∈ElemSet,i=1,2,3,…,n,n≥0} 数据关系:R={ai-1, ai | ai-1, ai∈D , i=1,2,3,…,n } 基本操作: StrLength(s):求出串s的长度。 StrAssign(s1,s2):将s2的串值赋值给s1。 StrConcat (s1,s2,s):s1与s2连接以后的结果存于s中,原s1、s2的值不变。或StrConcat (s1,s2):将s2的内容连接于s1之后,s1改变,s2不变。 SubStr (s,i,len):返回从串s的第i个字符开始的长度为 len 的子串。len=0或i StrLength(s)得到的是Ф,i= StrLength(s)且len StrLength(s)则取第i个字符开始到串的最后一个字符的子序列作为返回值。 3.1 串类型定义 基本操作: StrCmp(s1,s2):比较两个串s1、s2, 若s1=s2,返回值0;若s1s2, 返回值0;若s1s2, 返回值0。 StrIndex(s,t):找子串t在主串s中首次出现的位置。若t∈s,则操作返回t在s中首次出现的位置,否则返回值为-1。 StrInsert(s,i,t):将串t插入到串s 的第i个字符位置上,1≤i≤StrLength(s)+1。 StrDelete(s,i,len) :删除串s 中从第i个字符开始的长度为len的子串,1≤i≤StrLength(s),0≤len≤StrLength(s)-i+1。 StrRep(s,t,r):用子串r 替换串s中出现的所有子串t。 }ADT String 前5个操作是最为基本的,称为最小操作集。 3.1 串类型定义 串的比较:通过组成串的字符之间的比较来进行的。 给定两个串:X=x1x2…xn和Y=y1y2…ym,则: 1. 当n=m且x1=y1,…,xn=ym时,称X=Y; 2. 当下列条件之一成立时,称X<Y: ⑴ n<m且xi=yi(1≤ i≤n); ⑵ 存在k≤min(m,n),使得xi=yi(1≤i≤k-1)且xk<yk。 3. 不满足1和2的情况,则XY 3.1 串类型定义 求子串操作 SubStr(s, i, len) 示例 i = 3, len = 3 i = 7, len = 4 空串 3.2 串的表示和实现 串的存储结构 顺序串:用数组来存储串中的字符序列。 3.2 串的表示和实现 串的定长顺序存储结构 如何表示串的长度? (1)方案1:定义一个串变量:SeqString s 0 1 2 3 4 5 6 7 8 9 10 ... ? ? MAXSIZE-1 a b c d e f g h i j k ? ? … ? s.curlen+1 typedef struct { char data[MAXSIZE]; int curlen; } 3.2 串的表示和实现 串的定长顺序存储结构 (2)方案2:串尾存储特殊字符作为终结符,如 \0 0 1 2 3 4 5 6 7 8 9 10 ... ? ? MAXSIZE-1 a b c d e f g h i j k \0 ? … ? (3)方案3:用数组的0号单元存放串的长度 0 1 2 3 4 5 6 7 8 9 10 ... MAXSIZE 10 a b c d e f g h i j 空闲 3.2 串的表示和实现 定长顺序串的基本运算 1 串联接 把两个串s1和s2首尾连接成一个新串s ,即:s=s1+s2。 int StrConcat1(char s1[],char s2[],char s[]

您可能关注的文档

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档