数据结构c语言pdf2007,数据结构(C语言)严蔚敏 吴伟明 编著 07.pdf

第四章 串

第四章 串

4.1 串类型的定义

4.2 串的表示和实现

4.2.1 定长顺序存储表示

4.2.2 堆分配存储表示

4.2.3 串的块链存储表示

4.1 串类型的定义

一、串和基本概念

串(String)是零个或多个字符组成的有限序

列。一般记作S “a a a …a ” ,其中S 是串名,

1 2 3 n

双引号括起来的字符序列是串值;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

特别地,空串是任意串的子串,任意串是

其自身的子串。

通常在程序中使用的串可分为两种:串变量

和串常量。串常量和整常数、实常数一样,在

程序中只能被引用但不能不能改变其值,即只能

读不能写。通常串常量是由直接量来表示的,

例如语句Error(“overflow”)中“overflow”是直

接量。但有的语言允许对串常量命名,以使程

序易读、易写。如C++中,可定义

const char path[] “dir/bin/appl”;

这里path是一个串常量,对它只能读不能写。串

变量和其它类型的变量一样,其取值是可以改

变的。

二、串的抽象数据定义

串的抽象数据类型定义台书P71

三、串的基本操作

对于串的基本操作,许多高级语言均提供了相

应的运算或标准库函数来实现。下面先介绍

几种在C语言中常用的串运算。

定义下列几个变量:

char s1[20]=“dirtreeformat”,s2[20]=“file.mem”;

char s3[30],*p;

int result;

(1) 求串长(length)

int strlen(char s); //求串的长度

例如:printf(“%d”,strlen(s1)); 输出13

(2 )串复制(copy)

char *strcpy(char to,char from);

该函数将串from复制到串to 中,并且返回一个

指向串to的开始处的指针。

例如:strcpy(s3,s1); //s3=“dirtreeformat”

(3)联接(concatenation)

char strcat(char to,char from)

该函数将串from复制到串to的末尾,并且返回

一个指向串to的开始处的指针。

例如:strcat(s3,”/”)

strcat(s3,s2); //s3=“dirtreeformat/file.mem”

(4) 串比较(compare)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据结构C语言版)》严蔚敏PDF带目录,是一本非常经典且广泛使用的数据结构教材。该书通过使用C语言作为编程语言,系统地介绍了数据结构的各种基本概念、常用算法和实际应用。以下是该书的目录。 第一部分 数据结构基础 1. 数据结构绪论 2. 算法基础 第二部分 线性表 3. 线性表的基本概念 4. 线性表的顺序存储结构 5. 线性表的链式存储结构 6. 线性表的应用 第三部分 栈与队列 7. 栈与队列的基本概念 8. 栈与队列的顺序存储结构 9. 栈与队列的链式存储结构 10. 栈与队列的应用 第四部分 串 11. 串的基本概念 12. 串的模式匹配算法 第五部分 树与二叉树 13. 树与二叉树的基本概念 14. 二叉树的存储结构 15. 二叉树的遍历 16. 线索二叉树 17. 树和森林 第六部分 图 18. 图的基本概念 19. 图的存储结构 20. 图的遍历 21. 最小生成树 22. 最短路径 第七部分 查找 23. 查找的基本概念 24. 顺序表查找 25. 二叉排序树 26. 平衡二叉树 27. B树和B+树 第八部分 排序 28. 排序的基本概念 29. 插入排序 30. 希尔排序 31. 选择排序 32. 堆排序 33. 归并排序 34. 快速排序 35. 外排序 第九部分 动态规划 36. 动态规划的基本概念 37. 0-1背包问题 通过阅读该书,读者可以系统地学习和掌握数据结构的各种基础知识和常用算法,并将其应用到实际问题中。由于该教材附带了PDF和目录,读者可以方便地查阅和学习相关内容,并进行深入的理解和应用。这本书对于学习数据结构和提高编程能力非常有价值,特别推荐给对数据结构感兴趣的读者。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值