資源描述:
《串的定義及其基本運算.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在PPT專區(qū)-天天文庫。
1、5.1串的定義及其基本運算5.2串的存儲結(jié)構(gòu)5.3串運算的應用小結(jié)第5章串(String)2021/7/21第頁本章學習目標串(即字符串)是一種特殊的線性表,它的數(shù)據(jù)元素僅由一個字符組成。如在學生信息管理系統(tǒng)中,學生姓名、籍貫等信息是作為字符串處理的。通過本章學習,應掌握如下內(nèi)容:串的基本概念;串的存儲結(jié)構(gòu);串的基本操作。2021/7/21第頁5.1.1串的基本概念5.1串的定義及其基本運算1.串的定義串(又稱字符串)(String)是由零個或多個任意字符組成的序列。一般記作:s="c1c2…cn"(n≥0)其中s是串名,雙引號括起來的字符序列
2、是串值,引號本身不屬于串的內(nèi)容;ci(1≤I≤n)可以是字母、數(shù)字或其它字符,稱為串的元素,是構(gòu)成串的基本單位,i是它在整個串中的序號;n為串的長度,表示串中所包含的字符個數(shù),當n=0時,稱為空串(EmptyString),通常記為Ф,它不包含任何字符。2021/7/21第頁2.幾個術(shù)語空白串:僅由一個或多個空格組成的串稱為空白串(BlankString)。應注意空串和空白串的不同,如""和""分別表示長度為1的空白串和空串。子串與主串:串中任意連續(xù)的字符組成的子序列稱為該串的子串。包含子串的串相應地稱為主串。子串的位置:子串在主串中首次出現(xiàn)時
3、,該子串的首字符對應主串的序號稱為子串在主串中的位置。例如,設A和B分別為A="Thisisastring”,B="is“則B是A的子串,A為主串。且位置是3。2021/7/21第頁特別規(guī)定,空串是任意串的子串,任意串是其自身的子串。串相等:兩個串相等,是指兩個串的長度相等且對應字符都相同。為敘述方便起見,先定義幾個相關(guān)的變量:charstr1[20]="dir/bin/appl“charstr2[20]="file.asm",str3[30],*p;intresult;(1)求串長strlen(str);操作結(jié)果:返回串str的字符個數(shù)。若s
4、tr為空串,則返回值為0。例如strlen(str1)/*值為12*/5.1.2串的基本運算2021/7/21第頁(2)串拷貝strcpy(s1,s2);執(zhí)行操作:將s2的串值賦值給s1。操作結(jié)果:串s1的值與串s2的值相等,s1原來的值被覆蓋掉。例如strcpy(str3,str1)(3)連接操作:strcat(s1,s2);操作結(jié)果:將字符串s2連接在s1的后面,s2不改變。例如操作前:s1="he",s2="bei",則操作結(jié)果是s1="hebei"(4)串比較strcmp(s1,s2);操作結(jié)果:若s1==s2,返回值為0;若s15、,返回值<0;若s1>s2,返回值>0。result=strcmp("abc","Abc");/*result>O*/result=strcmp("exam1.c","exam1.c");/*result=O*/result=strcmp("Joe',"Joseph");/*result6、r(str1,str3,14,3),則str3=NULL(6)子串定位strindex(s,t);找子串t在主串s中首次出現(xiàn)的位置操作結(jié)果:若t∈s,則操作返回t在s中首次出現(xiàn)的位置,否則返回值為-1。如:strindex("abcdebda","bc")=2strindex("abcdebda","ba")=-12021/7/21第頁4(7)串插入StrInsert(s,i,t);操作條件:串s,t存在,1≤i≤strlen(s)+1。操作結(jié)果:將串t插入到串s的第i個字符位置上。(8)刪除StrDelete(s,i,len);操作條件:串s
7、存在,1≤i≤strlen(s),0≤len≤strlen(s)-i+1。操作結(jié)果:刪除串s中從第i個字符開始的長度為len的子串,s的串值改變。(9)串替換strrep(s,t,r);操作條件:串s,t,r存在,t不為空。操作結(jié)果:用串r替換串s中出現(xiàn)的所有與串t相等的子串,s的串值改變。2021/7/21第頁5.2.1串的順序存儲1.靜態(tài)存儲的順序串:是指按預定義的大小,為每一個串變量分配一個固定長度的存儲區(qū)。如:#defineMAXSIZE256chars[MAXSIZE];5.2串的存儲結(jié)構(gòu)——順序存儲和鏈式存儲結(jié)構(gòu)但最多只能存放2
8、55個字符,因為必須留一字節(jié)來存放串終結(jié)符’