第4章 字符串和矩阵
本章内容
本章主要介绍字符串以及数据结构中矩阵的相关内容。
4.1 字符串的基本概念
串的基本概念:串是由零个或者多个字符组成的有限序列。串中字符的个数称为串的长度,含有零个元素的串叫做空串。
串的长度问题:现在看一个例子:
我们声明了一个字符串str,并对其进行赋值:
char str[] = "abcdef";
串通常由一个字符数组来表示,因此在这里str所占的内存字符为:a,b,c,d,e,f,\0,其中\0是编译器识别串结束。而串内字符为:a,b,c,d,e,f。因此,串str的长度为6,数组str的长度为7。
4.2 字符串的定义与相应算法
我们提到的字符串主要由字符数组来实现,因此算法的方式与顺序栈、顺序队列等结构相似。
【定义1】串的定义
#define maxSize 100 //定义串的最大长度为100
typedef struct Str {
cbar ch[maxSize+1]; //存放元素的字符数组,多一个用来存放\0
int length; //串顶指针
}Str;
串的匹配算法。这里我们介绍两种算法,第一种是非常简单的模式匹配算法,第二种是KMP算法。两种算法都是用来判断子串是否为主串的一个部分。如果是则返回其在主串中的位置,不是则返回-1。
【算法1】