串这一节的知识点不多,需要特别注意的也就是KMP算法。
串:由零个或多个字符组成的有序序列
串中任意个连续的字符组成的子序列称为该串的子串。包含子串的串相应的称为主串。
只有当两个字符串的长度相等,并且各个对应位置的字符都相等才相等
串的操作
(1)赋值 strcpy(数组名、字符串);
(2)判空 strlen() strcmp()
(3)字符串比较 strcmp
(4)求字符串长度 strlen
(5)字符串拷贝 strcpy
(6)字符串连接 strcat
(7)求字符串子串(截取字符串)
串的表示
(1)定长顺序存储表示:类似线性表的顺序存储结构,用一组地址连续的存储单元存储字符串的字符序列。
(2)堆分配存储表示:这种存储方式特点是:仍一一组连续的存储单元存放字符串序列,但它们的存储空间是在程序执行过程中动态分配而得的。
(3)块链存储表示:和线性表的链式存储类似,也是用链表来保存字符串的值。根据串的特殊,若每个字符占一个结点太小,则采取每个结点可以存放一个也可以存放多个字符。如图所示:图a就是块链存储方式,而图b则过于浪费空间。
串的模式匹配算法
串的内容考察不多,但是仍有算法考察需要注意,所以不光是对知识点的记忆,还需要对算法的理解。