本节学习脉络
- 串的存储结构
- 串的模式匹配算法
1.串的存储结构
- 串的定长顺序存储表示
//定长顺序存储表示结构体定义如下:
typedef struct
{
char str[maxsize+1];
int length;
}str;
//maxsize为已经定义的常量,表示串的最大长度,str数组长度定义为maxsize+1是因为多出一个‘\0’作为结束标记
-
串的变长分配存储表示
即动态分配存储表示,特点是在程序执行过程中根据需要动态分配。这种存储方式在使用时需要用函数malloc()来分配一个长度为length,类型为char型的连续存储空间,分配的空间可以用函数free()释放掉。用函数malloc()分配存储空间如果成功,则返回一个指向起始地址的指针,作为串的基地址,这个地址由ch指针指向,如果分配失败,则返回NULL。
//其结构体定义如下:
typedef struct
{
char *ch; //指向动态分配存储区首地址的字符指针
int length;//串长度
}str;
- 串的链式存储表示
- 基于顺序存储的一些常用基本操作