第四章串 °4.1串类型的定义 °42串的表示和实现 42.1定长顺序存储表示 422堆分配存储表示 423串的块链存储表示
第四章 串 ⚫ 4.1 串类型的定义 ⚫ 4.2 串的表示和实现 4.2.1 定长顺序存储表示 4.2.2 堆分配存储表示 4.2.3 串的块链存储表示
串类型的定义 串和基本概念 串( String)是零个或多个字符组成的有限序列。 般记作S=a1aa3.an3,其中S是串名,双引号括 起来的字符序列是串值;a1(1≡i≡n)可以是字母 数字或其它字符;串中所包含的字符个数称为该串 的长度。长度为零的串称为空串( Empty 它不包含任何字符 通常将仅由一个或多个空格组成的串称为空白 (Blank String) 注意:空串和空白串的不同,例如“”和“”分别 表示长度为1的空白串和长度为0的空串
4.1 串类型的定义 一、串和基本概念 串(String)是零个或多个字符组成的有限序列。 一般记作S=“a1a2a3…an ”,其中S 是串名,双引号括 起来的字符序列是串值;ai(1≦i≦n)可以是字母、 数字或其它字符;串中所包含的字符个数称为该串 的长度。长度为零的串称为空串(Empty String), 它不包含任何字符。 通常将仅由一个或多个空格组成的串称为空白串 (Blank String) 注意:空串和空白串的不同,例如“ ”和“”分别 表示长度为1的空白串和长度为0的空串
串中任意个连续字符组成的子序列称为该串的 子串,包含子串的串相应地称为主串。通常将子串 在主串中首次出现时的该子串的首字符对应的主串 中的序号,定义为子串在主串电的序号(或位 置)。例如,设A和B分别为 A=This is a string B=is 则B是A的子串,A为主串。B在A中出现了两次,其中 首次出现所对应的主串位置是3。因此,称B在A中的 序号(或位置)为3 特别地,空串是任意串的子串,任意是 其自身的子串。 通常在程序中使用的串可分为两种:串变量 串常量。串常量和整常数、实常数一样,在程序中
串中任意个连续字符组成的子序列称为该串的 子串,包含子串的串相应地称为主串。通常将子串 在主串中首次出现时的该子串的首字符对应的主串 中的序号,定义为子串在主串中的序号(或位 置)。例如,设A和B分别为 A=“This is a string” B=“is” 则B是A的子串,A为主串。B在A中出现了两次,其中 首次出现所对应的主串位置是3。因此,称B在A中的 序号(或位置)为3 特别地,空串是任意串的子串,任意串是 其自身的子串。 通常在程序中使用的串可分为两种:串变量和 串常量。串常量和整常数、实常数一样,在程序中
只能被引用但不能不能改变其值,即只能读不能 写。通常串常量是由直接量来表示的,例如语句 Error(“ overflow”)中“ overf1ow”是直接量。但 有的语言允许对串常量命名,以使程序易读、易 写。如C中,可定义 char path[]=“dir/bin/app1”; 这里path是一个串常量,对它只能读不能写。串 变量和其它类型的变量一样,其取值是可以改变 的 串的抽象数据定义 串的抽象数据类型定义台书P71
只能被引用但不能不能改变其值,即只能读不能 写。通常串常量是由直接量来表示的,例如语句 Error(“overflow”)中“overflow”是直接量。但 有的语言允许对串常量命名,以使程序易读、易 写。如C中,可定义 char path[]=“dir/bin/appl”; 这里path是一个串常量,对它只能读不能写。串 变量和其它类型的变量一样,其取值是可以改变 的。 二、串的抽象数据定义 串的抽象数据类型定义台书P71
串的基本操作 对于串的基本操作,许多高级语言均提供了相 应的运算或标准库函数来实现。下面仅介绍几种在 C语言中常用的串运算,其它的串操作见文件。 定义下列几个变量: char s1[20]=“ dirtreeformat”; char s2[20]=“file.mem?” char s3[30], *p int result (1)求串长( length int strlen(char*s);//求串的长度 例如: printf(“%d”, strlen(s1));//输出13
三、串的基本操作 对于串的基本操作,许多高级语言均提供了相 应的运算或标准库函数来实现。下面仅介绍几种在 C语言中常用的串运算,其它的串操作见文件。 定义下列几个变量: char s1[20]=“dirtreeformat”; char s2[20]=“file.mem”; char s3[30],*p; int result; (1)求串长(length) int strlen(char *s); //求串的长度 例如:printf(“%d”,strlen(s1));//输出13