數(shù)據(jù)結(jié)構(gòu)教程第十四課串的定義

字號(hào):

教學(xué)目的: 掌握串的定義及作用
    教學(xué)重點(diǎn): 串的類(lèi)型定義
    教學(xué)難點(diǎn): 串的類(lèi)型定義
    授課內(nèi)容:
    一、串定義
    串(或字符串),是由零個(gè)或多個(gè)字符組成的有限序列。一般記為:
    s=’a1a2...an’(n>=0)
    其中s是串的名,用單引號(hào)括起來(lái)的字符序列是串的值;串中字符的數(shù)目n稱(chēng)為串的長(zhǎng)度。零個(gè)字符的串稱(chēng)為空串,它的長(zhǎng)度為零。
    串中任意個(gè)連續(xù)的字符組成的子序列稱(chēng)為該串的子串。包含子串的串相應(yīng)地稱(chēng)為主串。通常稱(chēng)字符在序列中的稱(chēng)為該字符在串中的位置。子串在主串中的位置則以子串的第一個(gè)字符在主串中的位置來(lái)表示。
    例:a=’BEI’,b=’JING’,c=’BEIJING’,d=’BEI JING’
    串長(zhǎng)分別為3,4,7,8,且a,b都是c,d的子串。
    稱(chēng)兩個(gè)串是相等的,當(dāng)且僅當(dāng)這兩個(gè)串的值相等。
    二、串的抽象數(shù)據(jù)類(lèi)型的定義:
    ADT String{
    數(shù)據(jù)對(duì)象:D={ai|ai(-CharacterSet,i=1,2,...,n,n>=0}
    數(shù)據(jù)關(guān)系:R1={|ai-1,ai(-D,i=2,...,n}
    基本操作:
    StrAssign(&T,chars)
    chars是字符常量。生成一個(gè)其值等于chars的串T。
    StrCopy(&T,S)
    串S存在則由串S復(fù)制得串T
    StrEmpty(S)
    串S存在則若S為空串,返回真否則返回假
    StrCompare(S,T)
    串S和T存在,若S>T,則返回值大于0,若S=T,則返回值=0,若S    StrLength(S)串S存在返回S的元素個(gè)數(shù)稱(chēng)為串的長(zhǎng)度.
    ClearString(&S)
    串S存在將S清為空串
    Concat(&T,S1,S2)
    串S1和S2存在用T返回由S1和S2聯(lián)接而成的新串
    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個(gè)字符之后第出現(xiàn)的位置,否則函數(shù)值為0
    Replace(&S,T,V)
    串S,T和V存在,T是非空串,用V替換主串S中出現(xiàn)的所有與T相等的不重疊的子串
    StrInsert(&S,pos,T)
    串S和T存在,1<=pos<=StrLength(S)+1,在串S的第pos個(gè)字符之前插入串T
    StrDelete(&S,pos,len)
    串S存在,1<=pos<=StrLength(S)-len+1從串中刪除第pos個(gè)字符起長(zhǎng)度為len的子串
    DestroyString(&S)
    串S存在,則串S被銷(xiāo)毀
    }ADT String
    三、串操作應(yīng)用舉例:
    1文字處理中常用的:串的查找(比較,定位)與替換
    在TC集成環(huán)境中可用^QF快速查找變量 在WORD中可用搜索與替換批量改變文本
    2串的截?cái)嗯c連接
    可用求子串及串連接的方法進(jìn)行文字處理
    四、總結(jié)
    找出幾個(gè)自己親自做過(guò)的串操作例子。