串的定义及其基本运算
- 格式:ppt
- 大小:333.50 KB
- 文档页数:20
串的基本概念
串(string)是由0个或多个字符组成的有序序列,称为字符串。
它通常被表示为一个记号,例如s='abcdefg',其中s是字符串的名字,a、b、c等
是串的值,可以是字母、数字或者字符。
串的长度是指串中元素的个数。
例如,在字符串s='abcdefg'中,长度为7。
空串是不含任何字符的串,其长度为0。
子串是指一个主串中任意连续字符组成的字符串。
例如,在字符串
s='abcdefg'中,'a'、'bc'、'defg'等都是子串。
此外,当两个串的长度相等,并且对应位置的元素也相等时,这两个串被认为是相等的。
请注意,以上解释是基于计算机科学中关于串的基本概念。
在其他领域,如数学、物理或哲学中,串的概念可能会有所不同。
第四章串本章介绍了串的逻辑结构,存储结构及串上的基本运算,由于在高级语言中已经提供了较全善的串处理功能,因此本章的重点是掌握在串上实现的模式匹配算法。
同时这也是本章的难点。
但是从全书来讲,这属于较简单的一章内容。
1.串及其运算(领会)(这些内容比较容易理解,不用死记)串就是字符串,是一种特殊的线性表,它的每个结点仅由一个字符组成。
空串:是指长度为零的串,也就是串中不包含任何字符(结点)。
空白串:指串中包含一个或多个空格字符的串。
不同与空串,它的结点就是一个空格字符。
在一个串中任意个连续字符组成的子序列称为该串的子串,包含子串的串就称为主串。
子串在主串中的序号就是指子串在主串中首次出现的位置。
如A="I love you"B="love",则B在A中的序号为3,注意空格也是字符。
空串是任意串的子串,任意串是他自身的子串。
串分为两种:串常量和串变量。
串常量在程序中不能改变,串变量则可以。
关于串的基本运算,基本上在C语言中已经学过,主要有求串长strlen(char *s)、串复制strcpy(char *to,char *from)、串联接strcat(char *to,char *from)、串比较charcmp(char *s1,char *s2)和字符定位strchr(char *s, char c)等这些基本运算通过练习来掌握。
2.串的存储结构(简单应用)串是特殊的线性表(结点是字符),所以串的存储结构与线性表的存储结构类似。
串的顺序存储结构简称为顺序串,顺序串又可按存储分配的不同分为静态存储分配的顺序串和动态存储分配的顺序串。
静态的意思可简单地理解为一个确定的存储空间,它的长度是不可变的。
如直接使用定长的字符数组来定义一个串。
它的优点是涉及串长的操作速度快,因为它的最大长度是不变的。
动态存储分配就是在定义串时不分配存储空间,直到需要使用时按所需串的长度分配存储单元给它,并且在运行中还可以根据需要变化串的长度,这就是动态分配。