数据结构之串

从了解串开始, 最后应用串的操作, 难点是:串的匹配…

一. 串类型的定义

  • 串: 就是字符串
  • 值: 字符串的字符序列
  • 长度: 串中字符的数目
  • 空串: 零个字符的串
  • 子串: 串中任意个连续的字符组成的字符序列成为串的子串
  • 主串: 包含子串的串相应地成为主串
  • 位置: 字符在序列中的序号(从 0 开始)
  • 相等: 两个串的长度相等, 并且对象位置字符也相等
  • 空格串: 由一个或多个空格组成的串

二. 串的表示与实现

1. 用数组存储

  • 定义:

    1
    2
    #define MAXSTRLEN 255
    typedef unsigned char SString[MAXSTRLEN+1]; //0 号单元存储串的长度
  • 串的联接
    两个串的联接可能会出现三种情况:

    • 两个串的长度相加小于最大长度, 此时得到正确答案
    • 串 1 的长度小于最大长度, 而总长度大于最大长度. 此时串 2 被截断
    • 串 1 的长度为最大长度 , 新串等于串 1, 串 2 完全被截取.