串,即:字串。要注意的是,c語言中是沒有字串資料型別的,而將其作為一種資料結構——「內容受限的線性表」進行實現,並對空串、空格串、串的長度、子串與主串等概念進行了約定【詳見 《資料結構(c語言版)》 ,嚴蔚敏、吳偉民編著】。
串的儲存表示主要分為三種:
順序儲存表示 :使用字元型陣列(一塊連續的記憶體儲存空間)來儲存串的內容程式設計客棧,其最大長度已經定義則不可修改;(這也是c語言中初始約定好的一種較為字串內容的表示方式)
堆分配儲存表示:使用malloc和free函式對堆區進行操作,進行堆區記憶體的動態分配與釋放,而這塊儲存空間就用於儲存串的內容;
塊鏈儲存表示:即採用鍊錶的形式,通過指標,將位於不同儲存空間的多個字串「碎片」進行連線,「拼湊」成為乙個完整的串
在此只介紹第一種,即:串的順序儲存表示。
這部分就直接貼**了
【因為這裡是對陣列元素的操作,就偷個懶,直接用了c語言string.h標頭檔案中提供的一些庫函式,對一些基本操作進行了簡單實現。需要詳細寫**的部分到串的堆分配實現時候再體現】
2.1 標頭檔案宣告
/*** 串的順序儲存實現
*/#include
#define maxlen 255
//結構體定義-表示串結構體
typedef structsstring;
/** * 將字串t複製為chars
*/int strassigns(sstring* t,char* chars);
/** * 獲取vmmhxk字串長度
*/int strlengths(sst程式設計客棧ring t);
/** * 字串的判空操作
*/int strisemptys(sstring t);
/** * 串連線操作
*/int strconcats(sstring* t,char* s1,char* s2);
/** * 擷取子串
*/int substrings(sstring* t,sstring src,int pos,int len);
/** * 串清空
*/int clearstrings(sstring* t);
/** * 串比較
*/int strcompares(sstring t1,sstring t2);
2.2 函式實現
#include "sstring.h"
/** * 將字串t複製為chars
*/int strassigns(sstring* t,char* chars)
/** * 字串的判空操作
*/int strisemptys(sstring t)
/** * 獲取字串長度
*/int strlengths(sstring t)
/** * 串連線操作
*/int strconcats(sstring* t,char* s1,char* s2)
/** * 擷取子串
*/int substrings(sstring* t,sstring src,int pos,int len)
/** * 串比較
*/int strcompares(sstring t1,sstring t2)
/** * 串清空
*/int clearstrings(sstring* t)
2.3 函式測試
#include
#inc程式設計客棧lude
#include "sstring.h"
int main(int argc,char **ar**)
貼上測試結果的截圖:
本文標題: c語言實現串的順序儲存表示與基本操作
本文位址:
串的定長順序儲存表示與實現(c語言)
include pch.h include include include include define maxlen 225 define false 0 define true 1 字串順序表示 靜態儲存 typedef struct sstring 構造串 intstrassign sstri...
串的定長順序儲存C語言實現
串 字串 是由0個或多個字元組成的有限序列。0個字元時稱為空串。由乙個或多個空格組成的串 稱為空格串。串中字元的數目n稱為串的長度 串中任意個連續的字元組成的子串行稱為該串的字串 包含字串的串相應的稱為主串 通常稱字元在序列中的序號稱為該字元在串中的位置。字串在主串中的位置則以字串的第乙個字元在主串...
C語言實現棧的順序儲存與鏈式儲存
一 實驗目的 1.深入了解棧的定義和特性。2.掌握棧的順序表示 鍊錶表示以及相應操作的實現,鞏固對這兩種結構的構造方法的掌握。3.會靈活運用棧結構解決某些實際問題。二 實驗內容 1.棧的基本操作的實現 初始化 賦值 取值 插入 刪除等 要求分別採用順序和鏈式儲存結構。順序棧源程式 include i...