作者: 一曲广陵散 | 来源:发表于2016-06-27 13:56 被阅读14次
    string.png
    计算机上的非数值处理的对象基本上是字符串数据,
    
    开始,字符串是作为输入和输出的常量出现的,
    
    随着语言加工程序的发展,产生了字符串处理,
    
    在汇编和语言的编译程序中,源程序和目标程序都是字符串数据,
    
    事务处理程序中,实际的数据都是作为字符串处理的,
    
    很多程序中,字符串数据都被作为处理对象
    
    字符串定义.png
    串string(字符串):由零个或者多个字符组成的有限序列
    
    s是串的名,
    
    串的值:单引号括出来的是字符序列的串的值
    
    串值用一对单引号括起来,单引号本身不属于串
    
    串的长度:串中字符的数目
    
    空串null string:零个字符的字符串
    
    子串:串中任意连续的字符组成的子序列
    
    主串:包含子串的串
    
    位置:字符在序列中的序号为该字符在串中的位置
    
    串相等:两个串的长度相等,各个对应位置的字符都相等
    
    存储字符串.png
    如果在程序设计语言中,串只是作为输入和输出的常量出现,只需要存储串值,
    
    但是多数非数值处理的程序中,串以变量的形式出现,3种串的机内表示方法:
    
    (1)定长顺序存储表示:
    
    用一组地址连续的存储单元存储串值的字符序列
    
    截断:超过预定义长度的串值被舍去,称为截断
    
    在顺序存储结构中,实现串操作的原操作为字符序列的复制
    
    操作的时间复杂度基于复制的字符序列的长度
    
    如果操作中出现串值序列的长度超过上界maxstrlen,约定使用截尾法
    
    解决问题的方法是,动态分配串值的存储空间
    
    
    (2)堆分配存储表示
    
    仍然是用一组地址连续的存储单元存放串值字符序列,
    
    存储空间是在程序执行过程中动态分配而得
    
    堆分配存储结构的串既有顺序存储结构的特点,处理方便
    
    操作对串长没有限制,在串处理的应用程序中经常使用
    
    
    (3)串的块链存储表示
    
    串结构的特殊性-结构中的每个数据元素是一个字符
    
    用链表存储串值时,存在一个结点大小的问题,
    
    每个结点可以存放一个或者多个字符
    
    串值的链式存储结构对某些串操作,比如联接等有一定方便,
    
    但是总的来说没有其他两种存储结构灵活,占用存储量大操作复杂
    

    相关文章

      网友评论

        本文标题:

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