文章目录
串的定义
由零个或多个字符组成的有限序列,又名叫字符串。
区分部分概念:
1、空串,零个字符的串;
2、空格串,是只包含空格的串。注意它与空串的区别,空格串是有内容有长度的,而且可以不止一个空格。
3、子串与主串,字符串中任意个数的连续字符组成的子序列称为该串的子串,相应地,包含子串的串称为主串。
子串在主串中的位置就是子串的第一个字符在主串中的序号。
注意:子序列与子串,子序列是指一个字符串中非连续的字串,
例如:字符串A:abshdnc 其中,子序列:as(非连续) 子串:abs(连续)。
串的比较
通过组成串的字符之间的编码进行比较,即字符在对应字符集中的序号。常用字符是使用标准的ASCII编码。
如果要比较两个串是否相等,必须是串的长度以及它们各个对应位置的字符都相等。
抽象数据类型
串具有线性表的特征:除了第一个元素a1外,每一个元素有且只有一个直接前驱元素;除最后一个元素an外,每一个元素有且只有一个直接后继元素。数据元素之间的关系是一对一的关系 。
串的基本操作
StrAssign(&S,cstr)
:串的赋值操作。把字符串常量cstr
赋值给S
。
StrEmpty(S)
:判断串是否为空。如果是空串,则返回1,否则返回0。
StrLength(S)
:求串的长度。返回串中的字符个数。
StrClear(&S):
清空串。将串的值清空。
StrCopy(&T,S)
:串的复制。由字符串S复制产生一个与S完全相同的另一个字符串T。
StrCompare(S,T)
:串的比较。比较串S和T的每个字符的ASCII值的大小,如果S的值大于T,则返回1;如果S的值等于T,则返回0;如果S的值小于T,则返回-1。
StrInsert(&S,pos,T)
:串的插入操作。在串S的第pos
个位置插入串T,若插入成功,返回1;否则返回0 。
StrDelete(&S,pos,len)
:串的删除操作。如果在串S中删除第pos
个字符开始,长度为len
的字符串。如果找到并删除成功,返回1;否则返回0。
StrConcat(&T,S):
串的连接。将串S连接