快速上手 C++ 数据结构与算法
王健伟
《C++ 新经典》系列作者,资深 C++ 讲师
3224 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 55 讲
结束语 (1讲)
快速上手 C++ 数据结构与算法
15
15
1.0x
00:00/00:00
登录|注册

39|串的顺序和链式存储结构:定长数组与动态数组

你好,我是王健伟。
前面我带你一起学习了各种各样的排序算法。从这节课开始,我们就要进入到字符串的学习了。
字符串作为一种数据结构,在计算机科学领域也有着比较广泛的应用。比如在搜索引擎中搜索一个关键词、在文章或发言中过滤或屏蔽一些敏感词等。这些关键词、敏感词都属于字符串。
提到这些,估计你就对它熟悉很多了。不过别着急,我们还是从一些基本的概念和术语学起。

串有哪些基本概念?

字符串简称,是由零个或者多个字符组成的有限序列。计算机上非数值处理的对象通常指的就是串数据。在 C 语言中,针对串的处理函数常用的有这几个:strlen()、strcat()、strcmp()、strcpy() 等。
看如下两行 C++ 风格的代码:
上述代码行中用双引号括起来的“Hello World!”,就是一个串,在 C 或者 C++ 语言中,用双引号括起来的是串,用单引号括起来的是字符。其中 mystr 称为串名,串中字符的个数 n 称为串的长度。当 n=0 时的串称为空串。空串可以用希腊字母Φ表示。
这里有两个概念咱们看一下。一个是子串,也就是串中任意个连续的字符组成的子序列。当然,如果是零个字符,就叫做空串。还有一个叫主串,包含子串的串叫做主串。
字符在主串中的位置,也就是字符在主串中的序号。序号(位置编号)从 1 开始算起。比如字符‘e’在“Hello World!”这个字符串中的位置是 2。而空格字符‘ ’在“Hello World!”这个字符串中的位置是 6,注意,空格符也是一个正常的字符。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入介绍了串的顺序存储结构和链式存储结构,以及它们在计算机科学领域中的应用。串是由零个或多个字符组成的有限序列,在计算机中非数值处理的对象通常指的就是串数据。文章详细介绍了串的基本概念,包括子串、主串以及字符在串中的位置等。此外,还介绍了串的基本操作,如增加、删除、修改、查询等,以及串的存储问题。串的存储结构主要分为顺序存储结构和链式存储结构,其中顺序存储结构是用一块地址连续的内存保存串中的字符序列。通过C语言代码示例展示了串的赋值、拷贝、比较、连接、获取子串、插入、删除和清空等操作,为读者提供了对串操作的具体实践。此外,文章还简要介绍了串的链式存储结构,指出了其优点和缺点。文章内容丰富,适合读者快速了解串的基本概念、存储结构以及在计算机科学领域中的应用。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《快速上手 C++ 数据结构与算法》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(2)

  • 最新
  • 精选
  • 鲁米
    链式存储第一次接受到
    2023-07-17归属地:北京
  • Se7en
    细致,重温一遍技术基础
    2023-05-18归属地:北京
收起评论
显示
设置
留言
2
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部