From adb2dfeb108e8ea4b2fc171fa97099b9690edebb Mon Sep 17 00:00:00 2001 From: Kim Yang Date: Wed, 12 Aug 2020 03:20:34 +0800 Subject: [PATCH] :sparkles: update SString --- DataStructure/DS_3_String/DS_3_0_SString.cpp | 53 +++++++++++++++++++- DataStructure/DS_7_Sort/README.md | 2 - 2 files changed, 52 insertions(+), 3 deletions(-) diff --git a/DataStructure/DS_3_String/DS_3_0_SString.cpp b/DataStructure/DS_3_String/DS_3_0_SString.cpp index aaed6bd..4e09bad 100644 --- a/DataStructure/DS_3_String/DS_3_0_SString.cpp +++ b/DataStructure/DS_3_String/DS_3_0_SString.cpp @@ -4,6 +4,7 @@ //顺序存储——静态数组实现方式(定长顺序存储),注意下面实现在数组中存放字符串时,都会舍弃,Str[0],第一个结点的空间,以保证字符下标和数组下标保证一致 #include +#include #define MAXLEN 255 //预定义最大串长为255 @@ -12,10 +13,60 @@ typedef struct { int length; //串的实际长度 } SString; -bool InitStr() { +//初始化 +bool InitStr(SString &S) { + S.ch[1] = ' '; + S.length = 0; +} + +//赋值操作 +bool StrAssign(SString &T, char str[]) { + if (str[0] == NULL)return false;//传入空数组就失败 + int strLength = sizeof(str) / sizeof(str[0]); + for (int i = 0; i < strLength; ++i) { + T.ch[i + 1] == str[i];//空置T的第一个元素位置 + } + T.length = strLength; + return true; +} + +//复制操作 +bool StrCopy(SString &T, SString S) { + for (int i = 1; i < S.length; ++i) { + T.ch[i] = S.ch[i]; + } + T.length = S.length; + return true; +} + +//判空 +bool StrEmpty(SString S) { + return S.length == 0; +} + +//清空操作 +void ClearStr(SString &S) { + S.length = 0; + memset(S.ch, 0, MAXLEN);//用到了一个cstring库中的memset函数 +} + +//销毁操作 +void DestoryString(SString &S) { } +//串链操作 +void Concat(SString &T, SString S1, SString S2) { + for (int i = 1; i < S1.length; ++i) { + T.ch[i] = S1.ch[i]; + } + for (int j = S1.length; j < S1.length + S2.length; ++j) { + T.ch[j] == S2.ch[j]; + } + T.length = S1.length + S2.length; +} + + //求子串 bool SubString(SString &Sub, SString S, int pos, int len) { if (pos + len - 1 > S.length)return false; diff --git a/DataStructure/DS_7_Sort/README.md b/DataStructure/DS_7_Sort/README.md index 7dbafdc..c16c3c9 100644 --- a/DataStructure/DS_7_Sort/README.md +++ b/DataStructure/DS_7_Sort/README.md @@ -1,4 +1,2 @@ # 排序 - -