1.1 串的定义
1)字符串简称串,计算机上非数值春丽的对象基本都是字符串数据。如信息检索系统,即搜索引擎,文本编辑系统,即Word等
2)串是由零个或多个字符组成的有限序列,一般记为S=‘a1a2....an’ (n>=0),其中,S是串名,单引号括起来的字符序列是串的值,且ai可以是字母、数字或其他字符。串中字符的个数称为串的长度,n=0时称该串为空串
3)串的逻辑结构和线性表极为相似,区别仅在于串的数据对象限定为字符集。但两种数据结构的基本操作差距极大,线性表的基本操作主要以单个元素作为操作对象,而串的基本操作中通常以子串作为操作对象
1.2 串的存储结构
1)定长顺序存储表示
① 类似于线性表的顺序存储结构,用一组地址连续的存储单元存储串值的字符序列
② 代码实现
#define MAXLEN 255
typedef struct{ //用数组存储串值,用整型存储串长
char ch[MAXLEN];
int length;
}SString;
③ 串长既可以通过代码中实例实现,也可以在串值后面加一个不计入串长的结束标记字符 '\0' ,此时串长为隐含值,需要遍历数组才能知道串长
④ 在一些串的操作中,若串值序列的长度超过上街,就需要用“截断法处理”,要克服这种弊端,只能采用动态分配