• c1c2c5 > 第5章 字符串
  • 第5章 字符串

    免费下载 下载该文档 文档格式:DOC   更新时间:2011-03-14   下载次数:0   点击次数:1
    例如,若a = "pencil",则
    执行 strsub(a, 4, 6,sub)有sub = "cil"
    执行strsub(a, 1, 1,sub)有sub = "p"
    利用求子串和联接两种运算,可实现对串的插入、删除和修改.
    例如,给定两个串s1="datastructure" 和s2 = "Ф",若欲在串s1的第4个字符与第5个字符之间插入串s2的值,则可通过下述的基本运算来完成:
    strconcat(s, strsub(s1, 1, 4, sub1), s2, strsub(s1, 5, 13, sub2))
    而strconcat(s, strsub(s1, 1, 2, sub1),strsub(s1, 5, 13, sub2))的运算结果是删去子串"ta".
    5) strindex(a, b)
    这是一个求子串在主串中序号的函数,称为子串定位函数,其结果为一整数.若b是a的子串,则返回值为b在a中第一次出现的第一个字符在a中的序号;若b不是a的子串,则返回值为-1.
    例如,若s="a+b+c",s1="+",则strindex(s,s1) = 2
    "+"出现了两次,其中首次出现所对应的主串位置是2.因此,称s1在s中的序号(或位置)为2.而strindex("element","nts") = 0
    6) strequal(a, b)
    判别两串是否相等.两个串相等是指两个串长度相等,并且各对应位置上的字符也都相同.a和b为串名或串值, :
    若串a和b相等,则返回1,否则返回0.
    若a="child",b="chald",则执行 strequal (a,b) 将返回0.
    7) streplace(&a, b, c)
    置换运算.它的含义是,若b是a的子串,则用串c去取代串a中所有的b;若b不是a的子串,则经运算后a保持不变.例如:
    若a ="A1+A2(t+A3",b="+",c ="- ",则streplace(a, b, c) ="A1-A2(t-A3"
    而streplace(a, "/", c)="A1+A2(t+A3"
    置换运算对于文本的修改是很有用的.插入字符到文本中,或修改和删除文本中的某些字符,都可以用此运算来实现.
    8)strcmp (s, t)
    串比较函数.比较串s和t如果st则返回值大于0,否则返回0.例如: result=strcmp("baker","Baker") result>0
    result=strcmp("12","12"result=0
    result=strcmp("Joe","Joseph"); result<0
    9)strempty (s)
    判断串s是否为空串.若s为空串,则反回1,否则返回0.
    10) strclear(&)
    清空函数.将串s清空,成为一个空串.
    11) strcopy(&t,s)
    串拷贝函数.将串t拷贝到串s中.
    12)strinsert (&s,i,t)
    串插入函数.在串s的第i个字符之前插入串t.
    13)strdelete(&s,i,j)
    串删除函数.将串s中从第i个到第j个字符全部删除.
    以上定义了串的基本操作,但在不同的程序设计语言中串的基本操作不完全相同.使用时应查阅相应语言的手册,遵循它的规定.C语言标准库函数中包含了许多字符串函数,对于用户常用而系统中又未定义的串操作,用户可自行定义并设计相应算法来满足实际的需要.
    5.2 串的存储结构和基本运算的实现
    串的存储方式取决于即将对串所进行的操作.串在计算机中有三种表示方法,1最简单的处理方法是将串定义成字符型数组,称为定长顺序存储表示.在此,数组名即为串名,从而实现了从串名直接访问串值.用这种方法处理,串的存储空间是在编译阶段完成的,其大小不能更改.2另一种处理方法被称为堆分配存储表示.这种表示法的特点是,仍然用一组地址连续的存储单元来依次存储串中的字符序列,但串的存储空间是在程序运行时根据串的实际长度动态分配的.3 串也可以采用链式结构表示,即块链存储表示.
    由于串是一种特殊的线性表,所以串的存储表示和线性表类似,但又不完全相同.
    5.2.1 定长顺序存储表示
    这种存储结构也称为静态存储分配的顺序表.就是把串所包含的字符序列相继存入一组连续的存储单元中.目前大多数计算机是以字节(byte)为存取单位的,而一个字符通常又恰好占用一个字节,这自然就形成了每个存储单元存放一个字符的分配方式.在这一方式中,可不存储串长的值,而以特定的字符作为结束符,例如,以字符"/0"为串结束符,并约定它不出现在各串变量的串值中;也可专门设定一个单元来存储串的长度.

    上一页下一页

  • 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
  • 免费下载 DOC格式下载
  • 您可能感兴趣的
  • c1c2c3  c1c2c3模拟考试试题  5dc1c2c3  小型c1c2c3  生化危机5  cctv5在线直播  cctv5  苹果5  仙剑奇侠传5