資料結構 串

2022-08-24 17:39:10 字數 2467 閱讀 1610

1 串

1.1 串的定義

由零個或多個字元組成的有限序列,串又被稱為字串;標記為:s="a1,a2,a3,...,ai,...,an"(n>=0),其中ai可以使字母、數字、其他字元;

1.2 串的相關概念

串的長度:串中的字元個數

空串:不含任何字元的串

空格串:只包含空格的串

主串:包含子串的串

子串:主串中任意個數的連續字元組成有限序列

1.3 串的抽象資料型別

adt串:

data:

s="a1,a2,a3,...,ai,...,an"(n>=0)

operation

initstring(s,str)      //

初始化操作,建立串

destorystring(s) //

銷毀串clearstring(s) //

清空串stringempty(s) //

若串為空,返回true

//若串不為空,返回false

length(str) //

獲取指定字串的長度

copystring(s,str) //

將字串str的所有字元複製到字串s中

comparestring(s,t) //

比較兩個字串的大小

//若s//

若s=t,返回0

//若s>t,返回整數

2 串的儲存結構

2.1 串的儲存結構

typedef struct

string

string;

2.2 串的初始化操作

void initstring(string *s,char *str)

s->data[i]='\0'

;}

2.3 銷毀串

void destorystring(string *s)

2.4 清空串

void clearstring(string *s)

2.5 判斷串是否為空

bool stringempty(string *s)

2.6 獲取指定字串長度

int length(char *str)

return

length;

}

int length(string *s)

2.7 複製字串

void copystring(string *s,char *string)  

for(i=0;i)

s->data[i]=string

[i];

s->data[length]='\0'

; s->length=length;

}

2.8 字串比較

int comparestring(string *s1,string *s2)

}

2.9 擷取子串

char *substring(string *s,int pos,int

len)

2.10 定位子串

int locate(string *s,char* str,int

pos)

if(j==len)

return

i; }

return -1

;}

2.11 插入子串

status insert(string *s,int

pos,char *str)

return success;

}

2.12 刪除子串

status delete(string *s,int pos,int

len)

2.13 替換子串

status replacestring(string *s,char *oldstr,char *newstr)

return

success;

}

資料結構 串

輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。結果請按字母順序輸出。我們求整個字串的排列,可以看成兩步 首先求所有可能出現在第乙個位置的字元,即把第乙個字元和後面所有的字元交換。第...

資料結構 串

串名 串值 串長 空串 空格串。字串的比較 字串模式匹配演算法 1.簡單字串模式匹配演算法 最簡單實現是用字串p的字元依次與字串t中的字元進行比較。實現思想是,首先將子串p從第0個字元起與主串t的第pos個字元起依次比較對應字元,如全部對應相等,則表明已找到匹配,成功終止。否則將子串p從第0個子串起...

資料結構 串

串 又稱字串 是一種特殊的線性表,它的每個結點僅由乙個字元組成。在早期的程式語言中,串僅在輸入或輸出中以直接量的形式出現,並不參與運算。隨著計算機的發展,串在文字編輯 詞法掃瞄 符號處理以及定理證明等許多領域得到越來越廣泛的應用。在高階語言中開始引入了串變數的概念,如同整型 實型變數一樣,串變數也可...