定义
串(string),也称字符串,是由零个或多个字符组成的有限序列。
一般的记法:
string s=“a1a2a3…an”
1.s是串的名称,用双引号或单引号括起来的字符序列是串的值,注意,单引2.号或者双引号不是串的内容
3.串中的字符数目n成为串的长度
4.零个字符的串成为空串(NULL string)
5.相邻字符之间具有前驱和后继的关系。
一些概念的相关解释:
1.空格串,是只包含一个或多个空格的串,它不是空串,它有自己的长度
2.子串和主串,串中任意个数连续序列的子序列成为该串的子串,相应,包含子串的串成为主串。
3.子串在主串中的位置就是子串的第一个字符在主串中的序号。
串的比较
串的大小比较是基于编码来的,我们一般使用的编码是ASCII编码
(字符的编码指的是字符在对应字符集中的序号)
ASCII编码是计算机中常用的字符编码,由7位二进制数来表示一个字符,总共可以表示128个字符。
(或许后来有增加,此处不进行深入讨论)
举个小栗子来理解一下字符串的比较鸭~
比较“abandon”和“aboard”的大小
显然,字符的第一位和第二位是相等的,但是第三位,“o“字母比”a“字符要靠后,所以我们说,”aboard“>”abandon“
我们的英语词典,其中词条的顺序就是按照字符串大小的来排列的。所以说,查词典的过程也是比较字符串大小的过程。
我们生活中常用的电子词典查找单词和搜索引擎搜索某个关键字都是用串这种数据结构来实现的。
串的抽象数据结构
C++标准库中有许许多多串的使用函数,可以很简洁地对串进行增删查改,此处不再赘述。
串的存储结构
同样,分为顺序存储结构和链式存储结构。
其实对于串来说,链式存储结构并不是很灵活,空间复杂度也会稍大,因此很少使用。