資料結構---串

Mr.Pan_學狂發表於2020-10-21

串,我們通常說字串,單個字元也是字串,多個字元也可以組成字串。所謂串的順序儲存,就是採用一組物理上連續的儲存單元來存放串中所有字元。

實現程式碼如下:

class String:
    def __init__(self):#初始化
        self.MaxStringSize = 256
        self.chars=""
        self.length = 0

    def IsEmptyString(self):#為空
        if self.length == 0:
            IsEmpty = True
        else:
            IsEmpty = False
        return IsEmpty

    def CreateString(self):#加入字串
        try:#加入異常處理
            stringSH = str(input('請輸入字串,按Enter鍵結束輸入:'))
            if len(stringSH)>self.MaxStringSize:
                print('輸入的字元序列超過分配的儲存空間,超出部分無法存入當前串中。')
                self.chars = stringSH[:self.MaxStringSize]
            else:
                self.chars = stringSH
        except Exception:
            print('輸入錯誤,不是字元。')

    def StringConnect(self,strSrc):
        lengthSrc = strSrc.length
        stringSrc = strSrc.chars
        if lengthSrc+len(self.chars)<=self.MaxStringSize:
            self.chars = self.chars + stringSrc
        else:
            print('兩個字串連線後的長度超過分配記憶體,超出部分無法顯示。')
            size = self.MaxStringSize - len(self.chars)
            self.chars = self.chars + stringSrc[0:size]
        print('連線後的字串為:',self.chars)

    def SubString(self,iPos,length):
        if iPos>len(self.chars)-1 or iPos < 0 or length < 1 or (length+iPos>len(self.chars)):
            print('無法獲取字串。')
        else:
            substr = self.chars[iPos:iPos+length]
            print('獲取的字元為:',substr)
            
if __name__ == '__main__':#主函式,程式出口
    S = String()
    #S.StringConnect()
    S.CreateString()

感謝大家前來觀看鄙人的文章,文中或有諸多不妥之處,還望指出和海涵。

相關文章