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 structstring
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,intlen)
2.10 定位子串
int locate(string *s,char* str,intpos)
if(j==len)
return
i; }
return -1
;}
2.11 插入子串
status insert(string *s,intpos,char *str)
return success;
}
2.12 刪除子串
status delete(string *s,int pos,intlen)
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個子串起...
資料結構 串
串 又稱字串 是一種特殊的線性表,它的每個結點僅由乙個字元組成。在早期的程式語言中,串僅在輸入或輸出中以直接量的形式出現,並不參與運算。隨著計算機的發展,串在文字編輯 詞法掃瞄 符號處理以及定理證明等許多領域得到越來越廣泛的應用。在高階語言中開始引入了串變數的概念,如同整型 實型變數一樣,串變數也可...