第四章 串

第四章 串

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)

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

  1. 数据结构(C语言版 第2版)课后习题答案 严蔚敏 等 编著

    数据结构(C语言版 第2版)课后习题答案 严蔚敏 等 编著,仅供参考,还是自己认真做了再看 第1章  绪论 5.选择题 (1)在数据结构中,从逻辑上可以把数据结构分成(  C ). A.动态结构和静态 ...

  2. 【最详细】数据结构(C语言版 第2版)第三章课后习题答案 严蔚敏 等 编著

    所有章节答案合集-->传送门 1.选择题 ( 1)若让元素 1, 2, 3, 4, 5 依次进栈,则出栈次序不可能出现在()种情况. A. 5, 4, 3, 2, 1 B. 2, 1, 5, 4 ...

  3. 【最详细】数据结构(C语言版 第2版)第八章课后习题答案 严蔚敏 等 编著

    所有章节答案合集-->传送门 1.选择题 ( 1)从未排序序列中依次取出元素与已排序序列中的元素进行比较, 将其放入已排序序 列的正确位置上的方法,这种排序方法称为() . A.归并排序 B.冒 ...

  4. 【最详细】数据结构(C语言版 第2版)第七章课后习题答案 严蔚敏 等 编著

    所有章节答案合集-->传送门 1.选择题 ( 1)对 n 个元素的表做顺序查找时, 若查找每个元素的概率相同, 则平均查找长度为 (). A. (n-1)/2 B . n/2 C. (n+1)/ ...

  5. 【最详细】数据结构(C语言版 第2版)第六章课后习题答案 严蔚敏 等 编著

    所有章节答案合集-->传送门 1.选择题 ( 1)在一个图中,所有顶点的度数之和等于图的边数的()倍. A. 1/2 B. 1 C. 2 D. 4 答案: C ( 2)在一个有向图中,所有顶点的 ...

  6. 【最详细】数据结构(C语言版 第2版)第五章课后习题答案 严蔚敏 等 编著

    所有章节答案合集-->传送门 1.选择题 ( 1)把一棵树转换为二叉树后,这棵二叉树的形态是() . A.唯一的 B.有多种 C.有多种,但根结点都没有左孩子 D.有多种,但根结点都没有右孩子 ...

  7. 【最详细】数据结构(C语言版 第2版)第四章课后习题答案 严蔚敏 等 编著

    所有章节答案合集-->传送门 第 4 章串.数组和广义表 1.选择题 ( 1)串是一种特殊的线性表,其特殊性体现在() . A .可以顺序存储 B .数据元素是一个字符 C.可以链式存储 D . ...

  8. 【最详细】数据结构(C语言版 第2版)第二章课后习题答案 严蔚敏 等 编著

    所有章节答案合集-->传送门 第 2 章线性表 1.选择题 ( 1)顺 序表中 第一个 元 素的存储 地址 是 100 ,每 个元素的 长度 为 2,则 第 5 个 元 素 的 地 址 是 ( ...

  9. 数据结构(C语言版第二版)严蔚敏 课后习题答案

    https://blog.csdn.net/Bamboo_shui/article/details/72433523 期末复习看了很多博客来确定自己的课后答案,大同小异,很多博客转载的都是上面这位大佬 ...

最新文章

  1. 【微服务架构】SpringCloud之Eureka入门篇
  2. 匹配滤波器的物理解释
  3. 升讯威微信营销系统开发实践:(3)功能介绍与此项目推广过程的一些体会( 完整开源于 Github)...
  4. 欢迎来到OpenGL的世界
  5. WINDOWS下的squid
  6. 【转】Windows消息传递机制详解
  7. thinkphp结合U方法,点击验证码刷新
  8. SpriteKit游戏开发适配iPad/iPhone6/7/8/Plus及iPhoneX的尺寸及安全区域
  9. php颜色淡入代码,JavaScript_jquery 淡入淡出效果的简单实现,样式:复制代码 代码如下:nbsp - phpStudy...
  10. proxy_cfw全局代理_浏览器代理配置(chromium based(edge)/firefox/IDM)
  11. .NET 开发从入门到精通
  12. MongoDB实验练习题
  13. 嵌入式linux locale,总结!嵌入式linux基础学习笔记
  14. Android学习之仿QQ讨论组和微信群聊头像
  15. ios发布证书过期怎么办?
  16. hdu2075 A|B?(C语言)
  17. kubeadm创建k8s集群(1.14.2版本)
  18. [RL] 深入理解Tabular Leaning (MC/TD) 过程中的梯度下降使用
  19. 9 个习惯助你在新的一年更有精力
  20. .netFramewo 4.0软件报 未能加载文件或程序集“System.Core, Version=2.0.5.0错误处理

热门文章

  1. 凯尔卡C68全球版汽车电脑诊断仪
  2. Server.MapPath方法的应用方法(转)
  3. 【个人笔记】OpenCV4 C++ 图像处理与视频分析 08课
  4. windos下编译ffmpeg生成dll、lib库(开启265)
  5. Tinyalsa之mixer_ctl_set_value(十)
  6. android系统签名
  7. android 权限
  8. Android内核开发:系统启动速度优化
  9. iOS camera 相关
  10. React配置代理proxy解决跨域问题