开发工具与关键技术:字符串
作者:章明
撰写时间:2020/5/28
串的定义:串是字符串的简称。在数据结构中,串是一种在数据元素的组成上具有一定约束条件的线性表,即要求组成线性表的所有数据元素都是字符,所以说窜是一个有穷的字符序列
字符串的定义:串是由零个或多个字符组成的有限序列,记作s=”s0s1…sn-1”(n≥0),其中s是串名,字符个数n称作串的长度,双撇号括起来的字符序列”s0s1…sn-1”是串的值。每个字符可以是字母、数字或任何其它的符号。零个字符的串(即:””)称为空串,空串不包含任何字符。值得注意的是:
(1) 长度为1的空格串" “不等同于空串”";
(2) 值为单个字符的字符串不等同于单个字符,如"a"与′a′;
(3) 串值不包含双撇号,双撇号是串的定界符。
窜的抽象数据类型:窜的数据集合可以表示为字符序列s0、s1、s2……sn-1每个数据元素的数据类型为字符类型。
字符串操作包括:初始化窜、赋值、求窜长度、比较(有相同和不相同两种比较结果,有大于、小于、等于三种比较结果)、插入、删除、取子窜、查找子窜、替换子窜。
窜和线性表的比较:窜和线性表都是线性结构不同之处在于1、线性表的数据类型为任意类型而窜的数据类型为字符类型。2线性表的插入和删除操作都只对一个数据元素而窜的插入和删除操作都是对一个子窜进行的。3、窜还有一些不同与线性表的其他操作。
窜的线性储存结构和基本运算的实现
串及其基本运算在程序中是如何实现的呢?串是在程序中比较常见的线性存储结构,也就是用一个连续的存储空间把串的每一个字符按照一定顺序存储起来。所以,在定义一个串之前,我们得先申请一个足够可以容纳字符串的空间。
窜的线性储存代码如下
窜的赋值运算
求窜的长度:每个窜都有它的长度Length可以方便的求出窜的长度,如下图
判断两个窜是否相等
求子窜:求子串的实现思路是,在已知的串里寻找串的第i个位置之后长度为len的字符串。算法如下: