關於串:串是由零個或多個字元組成的有限序列,它的邏輯結構與線性表極為相似,可看作是一種特殊的線性表。
串的元素序號從0開始。
相關概念:
1.串的長度——串中所包含的字元個數;
2.空串——長度為0的串;
在c語言中,串一般使用不可顯示的字元『\0』作為串的結束符。
3.子串——串中任意個連續的字元組成的子串行稱為串的子串;包含子串的串稱為主串。(個人認為資料結構中的串有點類似數學中的集合,子串即集合中的子集。串的基本操作通常以子串為操作物件,而非其中的單個元素。)
子串的第乙個字元在主串中的序號稱為子串在主串中的位置。
4.串常量和串變數:常量在程式中只能被引用,而不能改變它們的值;變數的值可以改變,用名字來識別。
串的基本操作:
(1).賦值——strcopy(s1,s2): 將串s2的值賦給串變數s1。s2既可以是串變數,也可以是串常量
(2).連線——strcat(s1,s2): 將串s2放在串s1的末尾,組成新串s1。
(3).求串長——strlen(s1): 求s1的長度。
(4).求子串——substr(s1,i,j): 取出的子串長度為j,從i字元開始。0 <= i <= strlen(s1)-1,0 <= j <= strlen(s1)-i。
———利用求子串和連線運算可以完成對串的插入、刪除和修改。
(5).比較串的大小——strcmp(s1,s2): 比較s1和s2的大小,函式值為乙個整數i。i>0,則s1>s2; i<0,則s1(6).插入——strinsert(s1,i,s2): 表示把串s2插入到s1的i位置處,操作結束後,s2的第乙個元素在新形成的串s1中的元素序號為i。注意:i 必須小於s1的長度,s1的儲存空間必須足夠大。
(7).刪除——strdelete(s1,i,j): 從串s1中刪除位置 i 及以後的連續 j 個字元。
(8).索引——strindex(s1,s2): 在s1中查詢s2,若有,函式值為s2首字元所在的位置序號;若無,函式值為-1.
(9).置換——replace(s1,i,j,s2): 用s2置換s1中位置 i 字元開始的連續 j 個字元。
資料結構之串與陣列(C語言)
串的基本操作 假設有乙個順序串定義如下 define maxsize 100 typedef struct seqstr seqstr s 1.串的連線運算 seqstr strcat seqstr s,seqstr t printf r s n r ch return r 最後生成的串r為s t的...
資料結構與演算法之陣列
陣列的基本概念 陣列是最簡單最常用的資料結構,但是也有一些注意事項 1 陣列的分配方式以及儲存位置 2 初始化 3 不同語言中的陣列高階定義 4 多維陣列 c c 中陣列分配方式 1 int a 10 適用於陣列長度已知或者對陣列長度不敏感的情況,比如定義乙個字串。2 int a int mallo...
資料結構與演算法之陣列
1 陣列的定義 陣列是相同型別資料的有序集合。他描述的是相同型別的若干個資料,按照一定先後順序排列組合而成,當中每乙個資料稱為元素,要訪問元素可以通過他的索引 下標去訪問他 2 陣列的幾個基本要素 1 陣列一旦被建立,其大小是不可以改變的,也就是長度是確定的 2 元素型別是相同型別 3 陣列型別可以...