python

2016-06-27  本文已影响14人  一曲广陵散
string.png
计算机上的非数值处理的对象基本上是字符串数据,

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

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

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

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

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

s是串的名,

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

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

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

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

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

主串:包含子串的串

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

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

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

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

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

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

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

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

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

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


(2)堆分配存储表示

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

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

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

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


(3)串的块链存储表示

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

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

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

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

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

猜你喜欢

热点阅读