- 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)