- 7
- 0
- 约3.22千字
- 约 22页
- 2018-04-26 发布于江苏
- 举报
串(String)
第四章 串(String) 本章概要 本章介绍符号数据——字符串的基本概念、存储结构以及基本运算和实现。通过学习掌握: *字符串的定义及特点; *字符串上各种运算; *字符串的顺序存储、链式存储以及各种运算在存储结构上的实现; *串的模式匹配; 4.1、有关字符串的基本概念 字符集(符号集):是一个系统中允许使用的所有符号的集合。 字符串: 是由字符集上的符号组成的有限序列。如S=‘aabc ‘,S为字符串名字,’ aabc’为字符串的值。两个单引号不是字符串的值,它们只是两个标识符。 字符串的长度 :是两个单引号中字符的个数。 空字符串: 是不包含任何字符的串。表示为X=‘’。其 长度为0,常用Φ表示。 空格字符串: 是有空格符组成的字符串 。例如,Y = ‘ ‘ 是只含有一个空格符的串 。其长度为1。 子字符串 : 是字符串中任意个连续的字符组成的子序列称为该串的子串。例如‘aa’,’abc’,’aab’都是S的子串. 4.2 串的表示和实现 1、串的定长顺序存储: 即字符数组,如char string[1000]; 2、动态分配数组存储表示: 即动态分配的连续空间,malloc和free; 3、块链存储表示:即链表; 1、串的定长顺序存储 是用一组地址连续的存储单元存储字符串的字符序列。其实现的方法是按照用户予定义的大小,系统为每个串的变量分配一个固定长度的存储区。 一般用定长数组描述: # define MAXSTRLEN 255 Typedef char Sstring[MAXSTRLEN+1] (规定:0号单元存放串的长度)。 注:C语言中字符串是以‘\0’为结束。 字符串上的运算 字符串的定义; 字符串的赋值; 字符串的联接MyConcat(T,S1,S2); 求子串MySubString(String,Sub,pos,len); 两个串比较MyStringCompare(s,t) 2.堆分配存储表示 在应用程序中,参与运算的串变量之间的长度相差较大,并且操作中串值的长度变化也较大。因此为串变量预分配固定大小的空间不尽合理。 堆存储结构的基本思想是:在内存中开辟能存储足够多的串、地址连续的存储空间作为应用程序中所有串的可利用存储空间,称为堆空间,如设store[SMAX+1]; 根据每个串的长度,动态的为每个串在堆空间里申请相应大小的存储区域,这个串顺序存储在所申请的存储区域中,当操作过程中若原空间不够了,可以根据串的实际长度重新申请,拷贝原串值后再释放原空间。 基于堆的串结构 typedef struct { char *ch; /*起始地址*/ int length; /*串长*/ } Hstring; 基于堆的串操作实现 串赋值; 串复制 串连接 求子串 串比较 4.2.3 串的链式存储结构 串的链式存储结构有时称为链串。 链串的存储形式与一般的链表类似,是将存储区分成许多结点,每个结点有一个存放字符的域和一个存放指向下一个结点的指针域。 链串中的一个存储结点可以存储1个或多个字符,通常将链串中每个存储结点所存储的字符个数称为结点大小 单字符结点的串的链式存储结构 多字符结点的串的链式存储结构 链串的类型定义 #define CHUNKSIZE 80 //定义的结点大小 typedef struct Chunk { char ch[CHUNKSIZE];; struct node *Chunk; }Chunk; 当结点大小为1时,可将ch域简单定义为: char ch; 链串的结构定义 Typedef struct { Chunk *head, *tail; int curlen; }LString; 串的存储密度 存储密度为:实际所占位数 / 分配空间位数 对比优缺点: 密度小: 密度大: 4.3 串的模式匹配算法 串的模式匹配,就是判断某串T(模式串)是否是另一个已知串S的子串,如是其子串,则给出该子串的起始点(即从已知串的哪个字符开始),故此运算又称为子串定位运算。 设已知串S和T,要求判断T是否是S的子串,如果是其子串则给出起始点。显然T是S的子串的一个必要条件是,T的长度LT一定要小于或等于S的长度LS,即LT≤LS。 1.简单的模式匹配算法 算法思想如下: 首先将s[1]与t[1]进行比较,若不同,就将s[2]与t[1]进行比较,...,直到s的某一个字符s[i]和t[1]相同,再将它们之后的字符进行比较,若也相同,则如此继续往下比较,当s的某一个字符s[i]与t的字
您可能关注的文档
- 中考物理副题.docx
- 中考物理总复习重点精品课件:《杠杆_简单机械》_【归纳了所有重要考点】.ppt
- 中考物理试题-辽.doc
- 中考物理试题及答案(四川重庆).doc
- 中考物理复习课件共章第.ppt
- 中考王中考命题研究思想品德:教材考点梳理第课时宪法是国家的根本大法依法参与政.docx
- 中考物理光学部分节选(有.doc
- 中考王中考命题研究思想品德:第课时宪法是国家的根本大法依法参与政.docx
- 中考生物复.docx
- 中考物理轮复习共章.ppt
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- 作文稿纸A4打印模板.docx VIP
- 《城市轨道交通客运服务》教案 项目二 城市轨道交通客运服务标志.pdf VIP
- 弱电系统维保方案(三篇).pdf VIP
- 2026建筑施工企业复工复产开工第一课.pptx
- 肠内营养(江苏)PPT课件.pptx VIP
- 基于51单片机智能晾衣架的设计.doc VIP
- 第一单元 第1课《童年艺趣》(课件)人教版三年级美术上册.ppt
- 交互设计2 交互系统与设计目标.ppt VIP
- 2024-2025学年广东深圳龙华区高一(上)期末数学试卷【答案版】.pdf VIP
- 工程伦理 课件全套 李正风 第1--9章 工程与伦理、 如何理解伦理--- 全球化视野下的工程伦理(414页).pptx VIP
原创力文档

文档评论(0)