1 串的概念
- 串(String)是由零个或多个字符组成的有限序列,又名字符串,一般记为 s = “a1a2…an”
- 串中任意个数的连续字符组成的子序列称之为该串的子串,例如 “over” 是 “lover” 的子串
2 串的比较
• “silly”、“stypid” 这样的两个字符串,第一个字母都是 “s”,因此不存在差异,第二个字母由于 “i” 比 “t” 靠前,所以 “i”<“t”,于是我们说 “silly” < “stypid”
• 串的比较是通过组成串的字符之间的编码来进行的,而字符编码是指字符在对应字符集中的序号
• 所以两个字符串是否相等,必须是它们串的长度以及每个字符都相等时,才算是相等
• 对于不相等的两个串,例如 s = “a1a2…an”,t = “b1b2…bm”,当满足以下条件之一时,s < t
- n < m,且 ai = bi (i=1,2…,n)
- 当 s = “happen”,t = “happy” 因为两串前 4 个字母均相同,而第五个字母 e 的 ASCII 码是 101,y
的 ASCII 码是 121,e < y,所以 s < t
3 串的抽象数据类型
- 串的逻辑结构和线性表很相似,不同之处在于串针对的是字符集,所有元素都是字符,因此串的基本操作与线性表有很大差别
- 线性表更关注的是单个元素的操作,比如增删查一个元素