⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 class14.htm

📁 数据结构的源代码和配套讲义
💻 HTM
字号:
<html>
<head>
<title>数据结构--数据空间http://zmofun.topcool.net</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body bgcolor="#FFFFFF">
<p align="center"><b>第十四课</b></p>
<p><b><i>本课主题:</i></b> 串的定义</p>
<p><b><i>教学目的:</i></b> 掌握串的定义及作用</p>
<p><b><i>教学重点:</i></b> 串的类型定义</p>
<p><b><i>教学难点:</i></b> 串的类型定义</p>
<p><b><i>授课内容:</i></b></p>
<p>一、<a name="#1401"></a>串定义</p>
<blockquote> 
  <p><font color="#FF0066">串</font>(或字符串),是由零个或多个字符组成的有限序列。一般记为:</p>
  <p>s='<font size="+2">a</font>1<font size="+2">a</font>2...<font size="+2">a</font>n'(n&gt;=0)</p>
  <p>其中s是串的名,用单引号括起来的字符序列是串的值;串中字符的数目n称为串的<font color="#FF0033">长度</font>。零个字符的串称为<font color="#FF0000">空串</font>,它的长度为零。</p>
  <p>串中任意个连续的字符组成的子序列称为该串的<font color="#FF0033">子串</font>。包含子串的串相应地称为<font color="#FF0033">主串</font>。通常称字符在序列中的称为该字符在串中的<font color="#FF0000">位置</font>。子串在主串中的位置则以子串的第一个字符在主串中的位置来表示。</p>
  <p>例:a='BEI',b='JING',c='BEIJING',d='BEI JING'</p>
  <p>串长分别为3,4,7,8,且a,b都是c,d的子串。</p>
  <p>称两个串是相等的,当且仅当这两个串的值相等。</p>
</blockquote>
<p>二、串的抽象数据类型的定义:</p>
<blockquote> 
  <p>ADT String{</p>
  <p>数据对象:D={<font size="+2">a</font>i|<font size="+2">a</font>i(-CharacterSet,i=1,2,...,n,n&gt;=0}</p>
  <p>数据关系:R1={&lt;<font size="+2">a</font>i-1,<font size="+2">a</font>i&gt;|<font size="+2">a</font>i-1,<font size="+2">a</font>i(-D,i=2,...,n}</p>
  <p>基本操作:</p>
  <p>StrAssign(&amp;T,chars)</p>
  <blockquote> 
    <p>chars是字符常量。生成一个其值等于chars的串T。</p>
  </blockquote>
  <p>StrCopy(&amp;T,S)</p>
  <blockquote> 
    <p>串S存在则由串S复制得串T</p>
  </blockquote>
  <p>StrEmpty(S)</p>
  <blockquote> 
    <p>串S存在则若S为空串,返回真否则返回假</p>
  </blockquote>
  <p>StrCompare(S,T)</p>
  <blockquote> 
    <p>串S和T存在,若S&gt;T,则返回值大于0,若S=T,则返回值=0,若S&lt;T,则返回值&lt;0</p>
  </blockquote>
  <p>StrLength(S)</p>
  <blockquote> 
    <p>串S存在返回S的元素个数称为串的长度.</p>
  </blockquote>
  <p>ClearString(&amp;S)</p>
  <blockquote> 
    <p>串S存在将S清为空串</p>
  </blockquote>
  <p>Concat(&amp;T,S1,S2)</p>
  <blockquote> 
    <p>串S1和S2存在用T返回由S1和S2联接而成的新串</p>
  </blockquote>
  <p>SubString(&amp;Sub,S,pos,len)</p>
  <blockquote> 
    <p>串S存在,1&lt;=pos&lt;=StrLength(S)且0&lt;=len&lt;=StrLength(S)-pos+1</p>
  </blockquote>
  <p>Index(S,T,pos)</p>
  <blockquote> 
    <p>串S和T存在,T是非空,1&lt;=pos&lt;=StrLength(S),若主串S中存在和串T值相同的子串,则返回它在主串S中第pos个字符之后第一次出现的位置,否则函数值为0</p>
  </blockquote>
  <p>Replace(&amp;S,T,V)</p>
  <blockquote> 
    <p>串S,T和V存在,T是非空串,用V替换主串S中出现的所有与T相等的不重叠的子串</p>
  </blockquote>
  <p>StrInsert(&amp;S,pos,T)</p>
  <blockquote> 
    <p>串S和T存在,1&lt;=pos&lt;=StrLength(S)+1,在串S的第pos个字符之前插入串T</p>
  </blockquote>
  <p>StrDelete(&amp;S,pos,len)</p>
  <blockquote> 
    <p>串S存在,1&lt;=pos&lt;=StrLength(S)-len+1从串中删除第pos个字符起长度为len的子串</p>
  </blockquote>
  <p>DestroyString(&amp;S)</p>
  <blockquote>
    <p>串S存在,则串S被销毁</p>
  </blockquote>
  <p>}ADT String</p>
</blockquote>
<p>三、串操作应用举例:</p>
<blockquote> 
  <p>1文字处理中常用的:串的查找(比较,定位)与替换</p>
  <p>在TC集成环境中可用^QF快速查找变量 在WORD中可用搜索与替换批量改变文本</p>
  <p>2串的截断与连接</p>
  <p>可用求子串及串连接的方法进行文字处理</p>
</blockquote>
<p>四、总结</p>
<blockquote>
  <p>找出几个自己亲自做过的串操作例子。</p>
  <p>&nbsp;</p>
</blockquote>
<p><a href="../index.htm">回目录</a> <a href="../class13/class13.htm">上一课</a> <a href="../class15/class15.htm">下一课</a></p>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -