串:一种特殊的线性表,它是由零个或多个字符组成的有限序列,一般记作s=“a1,a2, a3, ... an” 。
隐含结束符'\0',值=NULL。
串的长度:串中包含的字符个数。
空串:长度为0的串。
空白串:仅有一个或多个空格组成的串。
串中包含的字符可以是字母、数字或其它字符。
空串!=空白串
子串:串中任意连续的字符组成的子序列称为该串的子串。
子串的位置:子串t 在主串s中的位置是指主串s 中第一个与t相同的子串的首字母在主串中的位置。
串相等:当且仅当两个串的长度相同,并且各个对应位置的字符都相同。
单独讨论串的必要性:
1、字符串操作比其它数据类型更复杂。
2、程序设计中,处理对象很多都是串类型。
空串是任意串的子串;任意串S都是S本身的子串,除S本身外,S的其他子串称为S的真子串。
串的基本操作
赋值、联接、求串长、求子串、比较串的大小、插入、删除、子串定位、置换
串常量:在程序中只能被引用但不能改变其值,即只能读不能写。
串变量:串值是可以改变的。
字符串的定长顺序存储(静态存储):
用一组连续的存储单元(一维数组)来存储字符串,数组的上界预先给出。
字符串的堆分配存储(动态存储):
仍用一组连续的存储单元(一维数组)来存储字符串,数组的上界是在程序执行过程中动态分配获得的。