(一)串的基本概念
串(又称字符串)是一种特殊的线性表,它的每个结点仅由一个字符组成。
在早期的程序设计语言中,串仅在输入或输出中以直接量的形式出现,并不参与运算。随着计算机的发展,串在文字编辑、词法扫描、符号处理以及定理证明等许多领域得到越来越广泛的应用。在高级语言中开始引入了串变量的概念,如同整型、实型变量一样,串变量也可以参加各种运算。
1、串
串(String)是零个或多个字符组成的有限序列。一般记为
S=”a
1
a
2
……a
n
”
其中:
①S是串名
②双引号括起的字符序列是串值;
将串值括起来的双引号本身不属于串,它的作用是避免串与常数或与标识符混淆。
【例】”123″是数字字符串,它不同于整常数123
【例】”xl”是长度为2的字符串,而xl通常表示一个标识符。
③ai(1≤i≤n)可以是字母、数字或其它字符;
④串中所包含的字符个数称为该串的长度。
2、空串和空白串
长度为零的串称为空串(Empty String),它不包含任何字符。
仅由一个或多个空格组成的串称为空白串(Blank String)。
注意:
空串和空白串的不同。
【例】″ ″和″″分别表示长度为1的空白串和长度为0的空串。
3、子串和主串
串中任意个连续字符组成的子序列称为该串的子串。包含子串的串相应地称为主串。
通常将子串在主串中首次出现时,该子串首字符对应的主串中的序号定义为子串在主串中的序号(或位置)。
【例】设A和B分别为
A=”This is a string”
B=”is”
则B是A的子串,B在A中出现了两次。其中首次出现对应的主串位置是3。因此称B在A中的序号(或位置)是3。
注意:
①空串是任意串的子串
②任意串是其自身的子串。
4、串变量和串常量
通常在程序中使用的串可分为:串变量和串常量。
(1)串变量
串变量和其它类型的变量一样,其取值是可以改变的。
(2)串常量
串常量和整常数、实常数一样,在程序中只能被引用但不能改变其值。即只能读不能写。
①串常量由直接量来表示的:
【例】Error(”overflow”)中”overflow”是直接量。
②串常量命名
有的语言允许对串常量命名,以使程序易读、易写。
【例】C++中,可定义串常量path
const char path[]=”dir/bin/appl”;