串(string):由零個或多個字元組成的有限序列。記為:s=』a1a2…an』(n≥0)
s為串名, 』a1a2…an』為串值,n為串的長度。
子串在主串中的位置:以子串的第乙個字元在主串中的位置來表示
串相等:當且僅當兩個串的串值相等(兩個串的長度相等,並且各個對應的字元也都相等
adt string
r=基本操作:……
}其中 d 是資料物件 r 是資料關係
串是有限長的字串行,由一對單引號相括,如: 「a string」
串賦值:strassign(&s,chars) 求串長:strlength(s) 串判等:strcompare(s,t) 串聯接:concat(&t,s1,s2) 求子串:substring(&sub,s,pos,len) 子串定位:index(s,t,pos) 置換:replace(&s,t,v) 插入子串:strinsert(&s,pos,t)
刪除子串:strdelete(&s,pos,len)
index(s,t,pos)是指 判斷 t 串 在 s串的位置
分析:可利用串判等、求串長和求子串等操作實現來實現
演算法:int index (string s, string t, int pos)
} return 0;
}如果 return 0 就說明 s中不存在與t相等的子串
t為非空串。若主串s中第pos個字元之後存在與t相等的子串,則返回第乙個這樣的子串在s中的位置,否則返回0
1.求子串substring(&sub,s,pos,len)
substring( sub, 「commander」, 4, 3)
求得 sub = ?
』 man 』
從 「commander」 的第4個元素開始取3個元素
substring( sub, ?commander?, 1, 9)
求得 sub = ?
』 commander 』
從 「commander」 的第1個元素開始取9個元素
substring( sub, 「commander」, 9, 1)
求得 sub = ?
』 r 』
從 「commander」 的第9個元素開始取1個元素
substring(sub, ?commander?, 4, 7)
求得 sub = ?
』 mander 』
substring(sub, 「beijing, 7, 2)
求得 sub = ?
』 g 』
從 「commander」 的第9個元素開始取1個元素
substring(sub, 「student」, 5, 0)
求得 sub = ?
』 『串的邏輯結構和線性表極為相似,區別僅在於串的資料物件約束為字符集
串的基本操作和線性表有很大差別:
1.**性表的基本操作中,大多以「單個元素」作為操作物件
2.在串的基本操作中,通常以「串的整體」作為操作物件
資料結構 串的性質和基本操作(一)
串 string 由零個或多個字元組成的有限序列。記為 s a1a2 an n 0 s為串名,a1a2 an 為串值,n為串的長度。子串在主串中的位置 以子串的第乙個字元在主串中的位置來表示 串相等 當且僅當兩個串的串值相等 兩個串的長度相等,並且各個對應的字元也都相等 adt string r 基...
資料結構 棧的基本概念和性質
棧 stack 又名堆疊,它是一種運算受限的線性表。限定僅在表尾進行插入和刪除操作的線性表。這一端被稱為棧頂,相對地,把另一端稱為棧底。向乙個棧插入新元素又稱作進棧 入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素 從乙個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使其相鄰的元...
資料結構之串的基本操作
1 串基本術語 空串 空串指長度為0的串,其不包含任何字元 空格串 不同於空串,它是由乙個或多個空格構成的串。雖然是空格,但在計算長度時要把空格的個數算在內 串比較 串的大小比較時以字元的ascii碼值作為依據。2 串基本操作 賦值操作 連線操作 求串長 竄的比較和求子串。3 串的儲存結構 順序儲存...