【考研数据结构——C语言描述】第四章 串
25计算机考研,数据结构知识点整理(内容借鉴了王道408+数据结构教材),还会不断完善所整理的内容,后续的内容也会不断更新(可以关注),若有错误和不足欢迎各位朋友指出!
一.串的基本概念
字符串(string)是由零个或多个字符组成的有限序列。记为 S= ',... ,
,
,...,
'(n>0)
其中:
串名:S,串的名字
串值:用单引号括起来的字符序列就是串的值,每个(1≤i≤n)可以是字母数字或其他字符。
串长:n是串中字符的个数,即串的长度,n=0时的串称为空串(null string),用∅表示
需要特别指出的是,串值必须用一对单引号括起来(C语言中是双引号),但引号是定界符它不属于串,其作用是避免串值与变量名或常混淆
子串:串中任意连续的字符组成的子序列(含空串)称为该串的子串。
真子串:指不包含自身的所有子串
主串:包含子串的串称为主串,子串为主串的一部分
子串在主串中的位置:通常将字符在串中的序号称为该字符在串中的位置(字符位置)。子串在主串中的位置则以子串的第一个字符在主串中的位置来表示(子串位置)。
假设有串 A='China Beijing',B='Beijing',C='China',则它们的长度分别为13、7和5。B和
C是A的子串,B在A中的位置是7,C在A中的位置是1。
串相等:当且仅当两个串的值相等时,称这两个串是相等的(所有空串是相等的),即只有当两个串的长度相等,并且每个对应位置的字符都相等时才为串相等。
空格串≠空串:注意,空串和空格串(blank string)的区别:由一个或多个作为特殊字符的空格组成的串,称为空格串,其长度为串中空格字符的个数;而空串是无任何字符组成的串,其串长度为零。因此,串也是一种特定的线性表,串的逻辑结构和线性表极为相似,其特定性仅在于串的数据对象限定为字符集。
串的抽象数据类型定义: