串(字符串)
串是一种特殊的线性表,其数据元素仅仅由一个字符组成,
计算机非数值时处理的对象经常是字符串数据
1.串的概念
串是由零个或多个任意字符组成的字符序列
2.串的术语
- 一个串的任意个连续的字符组成的子序列称为该串的子串,包含该子串的串称为主串
- 串相等: 两个串的长度相等且对应的字符都相等
3.串的存储方式
对串的存储方式取决于我们对串的运算。如果只是输入或输出常量出现,
则需要存储该串的字符序列
3.1串的顺序存储
这种存储方法可以直接得到串的长度,即s.last+1
#define MAXSIZE
typedef struct{
char ch[MAXSIZE];
int last;//指向最后一个字符的位置
}SqString;
SqString s;
3.2串的堆存储
串值的存储空间可在程序执行过程中动态分配可得,计算机存在这样的一个自由存储区,
叫做堆,用的时候可以申请空间,不用的时候在释放回去
堆存储的基本思想:根据串的长度,动态地为每个串在堆空间store申请对应大小的存储区域,当原空间不够时,可以继续申请
- 串名的存储映像
它是串名——串值内存分配的对照表,也称为索引表
typedef struct{
int length;
int str;//起始地址
}Hstring;