定义
字符串简称串,是一种特殊的线性表,它的数据元素仅由一个字符组成。
串(String)是由零个或多个字符组成的有限序列
[s=' a_1a_2cdots a_n '
]
- 串的长度: 一字符串中,字符的个数
- 空串: 长度为零的字符串
- 空格串(blank string):由一个或多个空格组成的串
- 串相等:是指两个串的长度相等且对应的字符都相等
- 子串: –串中任意连续的字符组成的子序列称为该串的子串
- 主串:包含子串的串称为该子串的主串
- 模式匹配: 子串的定位运算又称为模式匹配,是一个求子串的队医给字符在主串中序号的运算。被匹配的主串称为目标串,子串称为模式。
表示和实现
因为串是数据元素类型为字符型的线性表,所以用于线性表的存储方式仍适合与串。但是由于串中的数据元素是单个字节,其存储方式又有其特殊之处。
定长顺序存储
类似于线性表,可以用一组地址连续的存储单元依次存放串中的各个字符序列,利用存储单元地址的顺序表示串中字符的相邻关系
定长存储的C语言描述
#define MAXLEN 10
typedef struct
{
char vec[MAXLEN];
int len;
} Str;//可用Str来定义该类型的结构体变量
特点:
- 为串变量分配一个预定义、固定长度的存储区
- 实际串长度保存在数组下标=0的位置