作者: 一曲广陵散 | 来源:发表于2016-06-27 13:56 被阅读14次
string.png
计算机上的非数值处理的对象基本上是字符串数据,

开始,字符串是作为输入和输出的常量出现的,

随着语言加工程序的发展,产生了字符串处理,

在汇编和语言的编译程序中,源程序和目标程序都是字符串数据,

事务处理程序中,实际的数据都是作为字符串处理的,

很多程序中,字符串数据都被作为处理对象
字符串定义.png
串string(字符串):由零个或者多个字符组成的有限序列

s是串的名,

串的值:单引号括出来的是字符序列的串的值

串值用一对单引号括起来,单引号本身不属于串

串的长度:串中字符的数目

空串null string:零个字符的字符串

子串:串中任意连续的字符组成的子序列

主串:包含子串的串

位置:字符在序列中的序号为该字符在串中的位置

串相等:两个串的长度相等,各个对应位置的字符都相等
存储字符串.png
如果在程序设计语言中,串只是作为输入和输出的常量出现,只需要存储串值,

但是多数非数值处理的程序中,串以变量的形式出现,3种串的机内表示方法:

(1)定长顺序存储表示:

用一组地址连续的存储单元存储串值的字符序列

截断:超过预定义长度的串值被舍去,称为截断

在顺序存储结构中,实现串操作的原操作为字符序列的复制

操作的时间复杂度基于复制的字符序列的长度

如果操作中出现串值序列的长度超过上界maxstrlen,约定使用截尾法

解决问题的方法是,动态分配串值的存储空间


(2)堆分配存储表示

仍然是用一组地址连续的存储单元存放串值字符序列,

存储空间是在程序执行过程中动态分配而得

堆分配存储结构的串既有顺序存储结构的特点,处理方便

操作对串长没有限制,在串处理的应用程序中经常使用


(3)串的块链存储表示

串结构的特殊性-结构中的每个数据元素是一个字符

用链表存储串值时,存在一个结点大小的问题,

每个结点可以存放一个或者多个字符

串值的链式存储结构对某些串操作,比如联接等有一定方便,

但是总的来说没有其他两种存储结构灵活,占用存储量大操作复杂

相关文章

  • 串手串

    某多买的手工材料到了,晚饭后回到家,开始串手串。 之前在老家在店里买的石榴石手串200多,有点紧,勒胳膊。 想着买...

  • 糖葫芦

    糖葫芦啊,糖葫芦, 串一串啊,串一串, 五个串一串, 味道酸又甜。

  • 日日行

    一串串的星月隐了,一串串的太阳升起来;一串串的日子里,和着一串串的柴米油盐;一串串的笑声后,或躲着一串串...

  • 模式匹配中Brute-Force与KMP算法关键提取

    模式匹配是串结构的一种操作方法,用于串的匹配。待匹配串称为主串(也叫目标串),执行串称为子串(也叫模式串)。模式匹...

  • iOS中的NSString与NSMutableString

    字符串的创建 字符串读写 字符串的比较 字符串的搜索 字符串截取 字符串替换 字符串与路径 字符串转换 NSMut...

  • Javascript知识点整合

    字符串 单行字符串: ‘字符串’或“字符串” 多行字符串: `多行字符串` 字符串操作: 字符串连接‘+’号 长度...

  • DS串应用--串替换

    题目描述 给出主串、模式串、替换串,用KMP算法找出模式串在主串的位置,然后用替换串的字符替换掉模式串 本题只考虑...

  • Go 关于串的三个经典案例

    子串查找 介绍 子串查找,也可以成为字符串查找。其中有两个字符串,分为主串和子串(模式串)。在主串中查找是否含有子...

  • php 字符串常见方法汇总

    字符串拼接 字符串检索 字符串截取 字符串替换 字符串大小写转化 字符串转数组 字符串格式化

  • jq的字符串操作

    字符串拼接 字符串长度 子串 split trim 子串替换

网友评论

    本文标题:

    本文链接:https://www.haomeiwen.com/subject/wemzdttx.html