串的基本概念和順序串

2021-08-16 04:09:07 字數 1953 閱讀 3567

一、 串的基本概念

串(或字串),是由零個或多個字元組成的有窮序列。

含零個字元的串稱為空串,用ф表示。串中所含字元的個數稱為該串的長度(或串長)。

通常將乙個串表示成「a1a2…an」的形式。其中最外邊的雙引號本身不是串的內容,它們是串的標誌,以便將串與識別符號(如變數名等)加以區別。每個ai(1≤i≤n)代表乙個字元。

當且僅當兩個串的長度相等並且各個對應位置上的字元都相同時,這兩個串才是相等的。

乙個串中任意個連續字元組成的子串行(含空串)稱為該串的子串。例如,「a」、「ab」、「abc」和「abcd」等都是「abcde」的子串(真子串是指不包含自身的所有子串)。

二、串的順序儲存及其基本操作實現

在順序串中,串中的字元被依次存放在一組連續的儲存單元裡。一般來說,乙個位元組(8位)可以表示乙個字元(即該字元的ascii碼)。

因此,乙個記憶體單元可以儲存多個字元。例如,乙個32位的記憶體單元可以儲存4個字元(即4個字元的ascii碼)。 

串的順序儲存有兩種方法:一種是每個單元只存乙個字元,這稱為非緊縮格式(其儲存密度小);另一種是每個單元存放多個字元,這稱為緊縮格式(其儲存密度大)。 

對於非緊縮格式的順序串,其型別定義如下: 

#define maxsize 100

typedef struct

sqstring;

順序串中實現串的基本運算如下:

(1)strassign(s,cstr)

將乙個字串常量賦給串s,即生成乙個其值等於cstr的串s。

void strassign(sqstring &s,char cstr)//s為引用型引數

(2)strcopy(s,t)

將串t複製給串s。

void strcopy(sqstring &s,sqstring t)//s為引用型引數

(3)strequal(s,t)

判串相等:若兩個串s與t相等返回真(1);否則返回假(0)。

bool strequal(sqstring s,sqstring t)

return same;

}(4)strlength(s)

求串長:返回串s中字元個數。

int strlength(sqstring s)

(5)concat(s,t)

串連線:返回由兩個串s和t連線在一起形成的新串。

sqstring concat(sqstring s,sqstring t)

(6)substr(s,i,j)

求子串:返回串s中從第i(1≤i≤strlength(s))個字元開始的、由連續j個字元組成的子串。引數不正確時返回乙個空串。

sqstring substr(sqstring s,int i,int j)

(7)insstr(s1,i,s2)

將串s2插入到串s1的第i(1≤i≤strlength(s)+1)個字元中,即將s2的第乙個字元作為s1的第i個字元,並返回產生的新串。引數不正確時返回乙個空串。

sqstring insstr(sqstring s1,int i,sqstring s2)

(8)delstr(s,i,j)

從串s中刪去第i(1≤i≤strlength(s))個字元開始的長度為j的子串,並返回產生的新串。引數不正確時返回乙個空串。

sqstring delstr(sqstring s,int i,int j)

(9)repstr(s,i,j,t) 

在串s中,將第i(1≤i≤strlength(s))個字元開始的j個字元構成的子串用串t替換,並返回產生的新串。引數不正確時返回乙個空串。

sqstring repstr(sqstring s,int i,int j,sqstring t)

(10)dispstr(s)

輸出串s的所有元素值。

void dispstr(sqstring s)

}

python基本概念 字串

1 字串 乙個字串用什麼引號開頭,就必須用什麼引號結尾。兩上三引號之間的一切都作為字串的內容,對應的單引號與雙引號卻只能建立單行字串。2 轉義符 行末的單獨乙個反斜槓表示字串在下一行繼續,而不是開始乙個新的行。3 自然字串 如果你想要指示某些不需要如轉義符那樣的特別處理的字串,那麼你需要指定乙個自然...

字串基本概念 譚浩強 cpp

字串處理函式 include或者 include 字串複製函式strcpy 可以實現將乙個字串賦給乙個字元陣列,但是不能用賦值語句將乙個字串常量或字元陣列直接賦給乙個字元陣列。字串比較函式 strcmp 注意 對兩個字串比較,不能用以下形式 if str1 str2 cout yes 字元陣列名st...

佇列 基本概念 順序佇列

一 基本概念 佇列 queue 是只允許在一端進行插入操作,而在另一端進行刪除操作的線性表。佇列是一種先進先出 first in first out 的線性表,簡稱fifo。允許插入的一端稱為隊尾,允許刪除的一端稱為隊頭。佇列基本操作 initqueue 初始化佇列 enqueue 進佇列 dequ...