前言
本篇开始写数据结构的第三部分——字符串,主要内容如下:
- 概念
- 串的存储结构
- 串的基本操作
关于字符串还有一个重要的知识点是KMP模式匹配算法,关于这个算法会单独拿一篇来写。
概念
串是由零个或多个字符组成的有限序列,又叫字符串。串中字符的个数称为串的长度,含有零个元素的串叫空串,空格也属于一个元素,只有空格的串称为空格串,空格串不等于空串。
在C语言中,可以用如下语句来定义一个名为str的字符串。
char str[] = "abcdef";
串通常用一个字符数组表示,数组str内存储的字符为"a","b","c","d","e","f"," ",其中" "作为编译器识别串结束标记,不算实际字符,因此数组str的长度为7,串str的长度为6。
串中任意连续字符组成的子序列称为该串的子串,包含子串的串称为主串,某个字符在串中的序号称为这个字符的位置。
串的存储结构
1.定长顺序存储
定长顺序存储就是事先指定串的长度并分配存储空间,定义如下:
typedef struct{ char str[maxsize+1]; int length; //字符串长度}Str;
maxsize表示串的最大长度,maxsize+1表示字符数组的长度,多出来的一个长度是用来存储
评论