串又稱字串,是比較常見的乙個資料結構,它由0或多個字元構成,一般定義為s="abcdegf"
。字元的個數稱為串的長度。長度為0的串為空串,記為s=""
,由空格組成的串為空格串,空格也是字元,記為s=" "
。
目前,隨著科學技術的發展,非數值處理的情況越來越多,學好字串的處理變得尤為重要,本文將介紹字串處理的幾個基本方法。
//建立string型別
typedef
struct strstring;
//賦值
intstrassign
(string * s,
char
*p)//給str分配記憶體,多分配乙個空間儲存'\0'
s->str =
(char*)
malloc
(sizeof
(char)*
(i+1))
;//賦值
int j;
for(j=
0;js->str[j]
='\0'
; s->length = i;
return1;
}
//獲取串的長度
intgetlength
(string *s)
先重新為str分配需要的記憶體,然後memset賦『\0』。最後迴圈賦值。
//複製串,將t複製到s中
void
strcopy
(string *s,string *t)
s->length = t->length;
}
//判斷兩個串是否相等
intstrequal
(string *s1,string *s2)if(
*ss1++
!=*ss2++
)return1;
}
//連線兩個串
intstrconnect
(string *s,string *p)
//拷貝p
for(j=
0;jlength;j++
) temp[j+i]
='\0'
;//字串指向temp
s->str = temp;
s->length = len;
return1;
}
//比較兩個串的大小
intstrcompete
(string *s,string *p)
//s < p if(
*s1 <
*p1)
s1++
; p1++;}
//兩個字串前n個字元相等時,比較長度
if(slen == plen)
if(slen>plen)
if(slen
}
//插入串 將字串p插入到s的指定位置上
intstrinsert
(string *s,string *p,
int pos)
int len = s->length + p->length;
char
* temp =
(char*)
malloc
(sizeof
(char)*
(len+1)
);int i,j;
//插入 s的左邊部分
for(i=
0;i)//插入 p
for(j=
0;jlength;j++
)//插入 s的右邊部分
for(
;ilength;i++)
temp[j+i]
='\0'
; s->str = temp;
s->length = len;
}
//刪除
intstrdelete
(string *s,
int pos,
int length)
int len = s->length - length;
char
* temp =
(char*)
malloc
(sizeof
(char)*
(len+1)
);int i,j;
for(i=
0;ij = pos+length;
for(
;jlength;j++
) temp[i]
='\0'
; s->str = temp;
s->length = len;
return1;
}
//串的順序儲存
#include
#include
#include
intmain()
輸出結果:
串的鏈式儲存可以使用單鏈表來儲存字元,每乙個結點儲存1個字元(密度為1),有利於串的插入或刪除,但它的空間利用率太低。如果乙個結點儲存多個字元,對字串的操作又會變得相當麻煩,得不償失。串的鏈式儲存的實用率很低,使用起來也不靈活,所以,一般都是使用串的順序儲存。
資料結構(四) 串
串 string 是由零個或多個字元構成的有限序列,又叫字串 空格串 只包含空格的串 空串 零個字元的串 串的大小比較 對於數字來說,1與2 誰大誰小不用討論,但是 兩個字串怎麼比較大小呢?計算機的常用字元是使用標準的ascii編碼。所以我們字串的比較就是逐個的比較ascii值的大小 串的一些操作函...
資料結構實驗四 串
一 實驗目的 通過訓練,加深理解並把握串的基本運算的特點。二 實驗內容 問題描述 本題目中的串編輯要求對串實現以下兩種功能 本題目中的串編輯要求對串實現以下兩種功能 插入 把乙個字串插入到給定串的指定位置 刪除 將串中某指定位置開始的若干字元從串中刪除 參考程式 include include in...
資料結構實驗四 串(模式匹配,刪除子串)
實驗三串 一 實驗目的 1 熟悉串的順序儲存結構 2 掌握串的基本運算及應用 二 實驗內容 1 模式匹配 串採用順序儲存結構,編寫樸素模式匹配演算法,查詢在串中是否存在給定的子串。本標頭檔案為實驗四第一問串的順序儲存 include using namespace std const int siz...