串(string)(或者字符串)是由零个或多个字符组成的有限序列,一般记为
s=‘a1a2…an’ (n>=0)
其中,s是串的名,用单引号括起来的字符序列是串的值;ai(1<=i<=n)可以是字母、数字或者其他字符;串中字符的数目n称为串的长度。零个字符的串称为空串,它的长度为零。
串中任意个连续的字符组成的子序列称为该串的子串。包含子串的串相应地称为主串。通常称子串在序列中的序号为该字符在串中的位置。子串在主串中的位置则以子串的第一个字符在主串的位置来表示。
称两个串是相等的,当且仅当这两个串的值相等。也就是说,只有当两个串的长度相等,并且各个对应位置的字符都相等时才相等。
值得一提的是,串值必须用一对单引号括起来,但单引号本身不属于串,它的作用只是为了避免与变量名或数的常量混淆而已。
串的抽象数据类型的定义如下:
ADT String{
数据对象:D = { ai | ai ∈ CharacterSet, i = 1,2,...,n,n>=0 }
数据关系:R1 = { < a(i-1), ai> | a(i-1), ai ∈ D, i = 2,...,n }
基本操作:
StrAssign (&T, chars)
初始条件:chars 是字符串常量。
操作如果:生成一个其值等于chars的串T。
StrCopy(&T,S)
初始条件:串S存在。
操作结果:由串S复制得串T。
StrEmpty(S)
初始条件:串S存在。
操作结果:若S为空串ÿ