[计算机软件及应用]第4章串.pdfVIP

  • 2
  • 0
  • 约1.51万字
  • 约 37页
  • 2018-03-04 发布于浙江
  • 举报
[计算机软件及应用]第4章串

第4章串 主要知识点: 串的定义和功能要求 C语言的串函数 串的存储结构和实现 串的模式匹配算法 4.1 串 1、串的基本概念 1)串(又称字符串)是由n(n≥0)个字符组成的有限序列。(它是数据元素为 单个字符的特殊线性表。) 记为: s “s s ……,s ” (n≥0 ) 0, 1, n-1 串名 串值(用“ ”括起来) 2)串长 串中字符的个数(n≥0)。 3)空串 串中字符的个数为0 时称为空串 ∅ 。 4 )空白串 由一个或多个空格符组成的串。 5)子串 串S中任意个连续的字符序列叫S的子串; S叫主串。 6) 子串位置 子串的第一个字符在主串中的序号。 7) 字符位置 字符在串中的序号。 8) 串相等 串长度相等,且对应位置上字符相等。(即两个串中 的字符序列一一对应相等。) 问:空串和空白串有无区别? 答:有区别。 空串(Null String)是指长度为零的串; 而空白串(Blank String),是指包含一个或多个空白字 符‘ ’(空格键)的字符串. 注:串与字符的区别 “a” 串,长度为1的串。(它不仅要存储字符 还要存储该串的长度数据1) ‘a’ 字符a。(只存储字符‘a’) 2、串的抽象数据类型 数据集合: 串的数据集合可以表示为字符序列 s0,s1, ……,sn-1,每个数据元素的数 据类型为字符类型。 操作集合: S1=“I am a student” (1)初始化串 Initiate(S) S2=“student” (2)赋值 Assign(S,T) S3=“teacher” (3)求串长度 Length(S) S4=“I am a teacher” (4)比较 Compare(S,T) 有相等和不相等两种比较结果,还有大于、等于和小于三种比较结果 (5)插入 Insert(S,pos,T) (6)删除 Delete(S,pos,len) (7)取子串 SubString(S,pos,len) (8)查找子串 Search(S,start,T) (9)替换子串 Replace(S,start,T,V) 3、串和线性表的比较 相同之处:都是线性结构 不如之处: (1)线性表的数据元素类型为任意类型;而串的数据元素类 型为字符类型 (2)线性表的插入和删除操作都是只对一个实践元素;而串 的插入和删除操作都是对一个子串进行的 (3)串还有一些不同于线性表的其他操作 因此,专门设计串为一个专门的数据结构。 现有的所有高级程序设计语言,如C++,Java等,都 提供了专门的串操作函数或串类。 4、C语言的串函数 Char str[] = “Data Structure” D a t a S t r u c t u r e \0 注:用C语言处理字符串时,要调用标准库函数 #includestring.h 串长度: int strlen(char *str); 串拷贝:

文档评论(0)

1亿VIP精品文档

相关文档