數據結構筆記——串的定義與基本操作

一、串的定義

例:

S='Hello World!'

T="iPhone 11 Pro Max?"

注:有的地方用雙引號(如Java、C),有的地方用單引號(如Python)

子串:串中任意個連續的字符組成的子序列。Eg:'iPhone','Pro M'是串T的子串

主串:包含子串的串。Eg:T是子串'iPhone'的主串

字符在主串中的位置:字符在串中的序號。Eg:'1'在T中的位置是8(第一次出現)

子串在主串中的位置:子串的第一個字符在主串中的位置。Eg:'11 Pro'在T中的位置爲8

注:位序從1開始,而不是從0開始

空串VS空格串:

M='' ——M爲空串

N='   ' ——N是由三個空格字符組成的空格傳,每個空格字符佔1B

 

二、串V.S線性表

串是一種特殊的線性表,數據元素之間呈線性關係

串的數據對象限定爲字符集(如中文字符、英文字符等)

串的基本操作,如增刪改查等通常以子串爲操作對象

 

三、串的基本操作

假設有串T="",S="iPhone 11 Pro Max?",W="Pro"

StrAssign(&T,chars) 賦值操作。把串T賦值爲chars
StrCopy(&T,S) 複製操作。由串S複製得到串T
StrEmpty(S) 判空操作。若S爲空串,則返回true
StrLength(S) 求串長。返回串S的元素個數
ClearString(&S) 清空操作。將S清爲空串
DestroyString(&S) 銷燬串。將串S銷燬(回收存儲空間)
Concat(&T,S1,S2) 串聯接。用T返回由S1和S2聯接的新串
SubString(&Sub,S,pos,len) 求子串。用Sub返回串S的第pos個字符起長度爲len的子串
index(S,T) 定位操作。若主串S中存在與串T值相同的子串,則返回它在主串S中第一次出現的位置,否則函數值爲0
StrCompare(S,T) 比較操作。若S>T,則返回值>0;若S=T,則返回值=0;若S<T,則返回值<0

 

 

 

 

 

 

 

 

 

 

 

Eg:執行基本操作Concat(&T,S,W)後,T="iPhone 11 Pro Max?Pro"

執行基本操作SubString(&T,S,4,6)後,T="one 11"

執行基本操作Index(S,W)後,返回值爲11

 

 

四、字符集編碼

任何數據存到計算機中一定是二進制數。需要確定一個字符和二進制數的對應規則,這就是編碼。

“字符集”:

英文字符——ASCII字符集

中英文——Unicode字符集

Unicode字符集:基於同一個字符集,可以有多種編碼方案,如:UTF-8,UTF-16

注:採用不同的編碼方式,每個字符所佔空間不同。

 

五、亂碼問題

在你的文件中,原本採用某一套編碼規則y=f(x),如:'碼'<->'0001010100010101010010'

打開文件時,你的軟件以爲你採用的是另一套編碼規則y=g(x),如0001010100010101010010' <->'鐟'

 

六、總結

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章