欢迎来到山村网

数据结构基础之串的定义与作用

2019-03-02 14:42:58浏览:221 来源:山村网   
核心摘要:  一、串定义  串(或字符串),是由零个或多个字符组成的有限序列。一般记为:  s='a1a2...an'(n=0)  其中s是串的名,用

  一、串定义

  串(或字符串),是由零个或多个字符组成的有限序列。一般记为:

  s='a1a2...an'(n>=0)

  其中s是串的名,用单引号括起来的字符序列是串的值;串中字符的数目n称为串的长度。零个字符的串称为空串,它的长度为零。

  串中任意个连续的字符组成的子序列称为该串的子串。包含子串的串相应地称为主串。通常称字符在序列中的称为该字符在串中的位置。子串在主串中的位置则以子串的第一个字符在主串中的位置来表示。

  例:a='BEI',b='JING',c='BEIJING',d='BEI JING'

  串长分别为3,4,7,8,且a,b都是c,d的子串。

  称两个串是相等的,当且仅当这两个串的值相等。

  二、串的抽象数据类型的定义:

  ADT String{

  数据对象:D={ai|ai(-CharacterSet,i=1,2,...,n,n>=0}

  数据关系:R1={|ai-1,ai(-D,i=2,...,n}

  基本操作:

  StrAssign(&T,chars)

  chars是字符常量。生成一个其值等于chars的串T。

  StrCopy(&T,S)

  串S存在则由串S复制得串T

  StrEmpty(S)

  串S存在则若S为空串,返回真否则返回假

  StrCompare(S,T)

  串S和T存在,若S>T,则返回值大于0,若S=T,则返回值=0,若S

  StrLength(S)

  串S存在返回S的元素个数称为串的长度.

  ClearString(&S)

  串S存在将S清为空串

  Concat(&T,S1,S2)

  串S1和S2存在用T返回由S1和S2联接而成的新串

  SubString(&Sub,S,pos,len)

  串S存在,1<=pos<=StrLength(S)且0<=len<=StrLength(S)-pos+1

  Index(S,T,pos)

  串S和T存在,T是非空,1<=pos<=StrLength(S),若主串S中存在和串T值相同的子串,则返回它在主串S中第pos个字符之后第一次出现的位置,否则函数值为0

  Replace(&S,T,V)

  串S,T和V存在,T是非空串,用V替换主串S中出现的所有与T相等的不重叠的子串

  StrInsert(&S,pos,T)

  串S和T存在,1<=pos<=StrLength(S)+1,在串S的第pos个字符之前插入串T

  StrDelete(&S,pos,len)

  串S存在,1<=pos<=StrLength(S)-len+1从串中删除第pos个字符起长度为len的子串

  DestroyString(&S)

  串S存在,则串S被销毁

  }ADT String

  三、串操作应用举例:

  1文字处理中常用的:串的查找(比较,定位)与替换

  在TC集成环境中可用^QF快速查找变量 在WORD中可用搜索与替换批量改变文本

  2串的截断与连接

  可用求子串及串连接的方法进行文字处理

  四、总结

  找出几个自己亲自做过的串操作例子。

(责任编辑:豆豆)
下一篇:

C#:异步编程和线程的使用(.NET 4.5 )

上一篇:

数据结构基础之栈的顺序存储表示与实现

  • 信息二维码

    手机看新闻

  • 分享到
打赏
免责声明
• 
本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们 xfptx@outlook.com