一、串的概念
定义:串是由零个或者多个字符组成的有序序列。一般记为S=“a1a2...an”(n>=0)。当n=0时称为空串(注意与空格串区分)。
串中任意个连续的字符组成的子序列称为该串的子串。
串与线性表的区别:
(1)串的数据对象限定为字符集;(英文字符——ASCII,中英文——Unicode)
(2)串的基本操作通常以子串为操作对象,而线性表以单个元素作为操作对象。
二、串的基本操作
StrAssign (&T):赋值操作
StrCopy(&T,S):复制操作
StrEmpty(S):判空操作,可以看长度。
StrLength (S):求串长,return length。
Concat(&T,S1,S2):串联接,考虑存储空间扩展问题。
ClearString (&S):清空操作,length=0。
DestroyString(&S):销毁串,释放空间。
Index(S,T):定位操作
SubString(&Sub,S,pos,len):求子串
StrCompare (S,T):比较操作
三、串的存储结构
1、定长顺序表示
#define MAXLEN 255 //预定义最大串长255
typedef struct{
char ch[MAXLEN]; //每个分量存储一个字符
int length; //串的实际长度
}SString;