4.1 串的定義
串是字串的簡稱。在資料結構中,串是一種在資料元素的組成上具有一定約束條件的線性表,即要求組成線性表的所有資料元素都是字元,所以說串是乙個有窮的字串行。
4.1.1 定義
串是由零個或多個字元組成的有限序列,記作s=」s0s1…sn-1」(n≥0),其中s是串名,字元個數n稱作串的長度,雙撇號括起來的字串行」s0s1…sn-1」是串的值。每個字元可以是字母、數字或任何其它的符號。零個字元的串(即:」」)稱為空串,空串不包含任何字元。值得注意的是:
(1)長度為1的空格串" 「不等同於空串」";
(2)值為單個字元的字串不等同於單個字元,如"a"與′a′;
(3)串值不包含雙撇號,雙撇號是串的定界符。
串中任意個連續的字元組成的子串行稱為該串的子串。包含子串的串則稱為主串。通常將字元在串中的序號稱為該字元在串中的位置。子串在主串鐘的位置則以該子串在主串中的第乙個字元位置來表示。為了讓大家更好的理解子串,舉個簡單的例子說明。如:
s=「i am from canada.」;
s1=「am.」;
s2=「am」;
s3=「i am」;
s4=「i am 「;
s5=「i am」;
s2、s3、s4、s5都是s的子串,或者說s是s2、s3、s4、s5的主串,而s1不是s的子串。s3等於s5,s2不等於s4。s的長度是17,s3的長度是4,s4的長度是5。
4.1.2 串的基本演算法
串的基本演算法在串的應用中廣泛使用,這些基本演算法不僅加深了對串的理解,更簡化了日後對串的應用。下面還是通過舉例介紹串的常用基本演算法。
假設有以下串:s1=「i am a student」,s2=「teacher」,s3=「student」,常用的串的基本運算有下列幾種:
(1)assign(s,t),將t的值賦給s。
(2)assign(s4,s3)或assign(s4,「student」)後,s4="student」。
(3)length(s),求s的長度。
(4)length(s1)=14,length(s3)=7。
(5)equal(s,t),判斷s與t是否相等。
(6)equal(s2,s3)=false,equal(「student」,s3)=true。
(7)concat(s,t),將t連線到s的末尾。如:concat(s3, " number」)= 「student number」。
(8)substr(s,i,len),求子串。如:substr(s1,7,7)= 「student」,substr(s1,10,0)= 「」, substr(s1,0,14)= 「i am a student」。
(9)insert(s,i,t),在s的第i個位置之前插入串t。 insert(s3,0,「good_」)後,s3="good_student"。
(10)delete(s,i,len),刪除子串。ss=「good_student」,delete (ss,0,5)後,ss="student"。
(11)replace(s,u,v),子串替換,即將s中的子串u替換為串v。 replace(s1,s3,s2)後,s1=「i am a teacher」,replace(s1,「worker」,s2)後s1的值不變。 若ss=「abcbcbc」,則:replace(ss,「cbc」,「x」)後,ss="abxbc",replace(ss,「cb」,「z」)後,ss="abzzc"。
(12)index(s,t),子串定位,即求子串t在主串s中的位置。 index(s1,s3)=7,index(s1,s2)=-1,index(s1, 「i」)=0。
這是根據課程中。
字串比較的原理是什麼?
原理 從兩個字串的第乙個字元開始逐個進行比較 按字元的ascii值進行大小比較 直到出現不同的字元或遇到 0 為止。如果全部字元都相同,就認為兩字串相等,返回0 若出現了不相同的字元,則以第乙個不相同的字元比較結果為準,若前者字元大於後者,則返回1,否則返回 1.注意 順序是第乙個物件與第二個物件比...
裡面放置字串變數是什麼意思
這個是js語法,叫做 模板字串 這種語法是能夠允許嵌入表示式的字串字面量 模板字串使用反引號 來代替普通字串中的用雙引號和單引號。模板字串可以包含特定語法 的佔位符。佔位符中的表示式和周圍的文字會一起傳遞給乙個預設函式,該函式負責將所有的部分連線起來,如果乙個模板字串由表示式開頭,則該字串被稱為帶標...
c char 賦值 字串賦值是什麼意思
字串主要用於程式設計,字串在儲存上類似字元陣列,所以它每一位的單個元素都是可以提取的,如s abcdefghij 則s 1 a s 9 j 而字串的零位正是它的長度,如s 0 10 上述功能ansistring沒有。這可以給我們提供很多方便,如高精度運算時每一位都可以轉化為數字存入陣列。但是字串賦值...