(一)串的基本概念
     
    
   
    
     
      
       
       
       串(又称字符串)是一种特殊的线性表,它的每个结点仅由一个字符组成。
       
       
       
       在早期的程序设计语言中,串仅在输入或输出中以直接量的形式出现,并不参与运算。随着计算机的发展,串在文字编辑、词法扫描、符号处理以及定理证明等许多领域得到越来越广泛的应用。在高级语言中开始引入了串变量的概念,如同整型、实型变量一样,串变量也可以参加各种运算。
       
       
       
       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”;
      
     
    
    
   
    
     
     
    
   
 
