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