資源描述:
《lecture4_字符串_元胞數(shù)組_結(jié)構(gòu)數(shù)組》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、2.5字符串2.5.1字符串的定義(可通過(guò)helpstrings了解本小節(jié)內(nèi)容)另一種常用的變量類(lèi)型為字符串(字符型數(shù)組)。Matlab中的字符串常量是由單引號(hào)括起來(lái)的。例如:strA='GuowangMu'strB='HebeiUniversityofTechnology'以單引號(hào)括起來(lái)的字符串實(shí)際上是一個(gè)行向量(字符型數(shù)組)。其每個(gè)元素是一個(gè)字符,在內(nèi)存中實(shí)際存儲(chǔ)的是其ASCII碼值,元素的標(biāo)識(shí)方法和數(shù)值向量相同。例如:strA(1:7),strA(9:end),[strA'worksin'strB'.']注:[strA;strB]出錯(cuò),大家想一下這是為什么?2.5.2常用的字符串函數(shù)在
2、strfun函數(shù)庫(kù)中提供了一系列關(guān)于字符串的函數(shù),可以通過(guò)helpstrfun命令查看有關(guān)信息。1.獲取字符串的基本信息disp(x)或display(x)顯示變量x的內(nèi)容class(x)以字符串的形式返回變量x的類(lèi)型名例如:若strA是一個(gè)字符串,則class(strA)的值為’char’ischar(x)如果x是一個(gè)字符串,則返回1,否則返回0length(x)若x為字符串,返回x的長(zhǎng)度isletter(x)逐個(gè)檢查x的每個(gè)元素是否為字母,如果是則返回1,否則返回0,最后返回一個(gè)和x同樣大小的邏輯數(shù)組。isspace(x)逐個(gè)檢查x的每個(gè)元素是否為空格,如果是則返回1,否則返回0,最后返
3、回一個(gè)和x同樣大小的邏輯數(shù)組。例如:在命令窗口中輸入以下命令,觀察執(zhí)行結(jié)果strA='GuowangMu'disp(strA),class(strA),ischar(strA),length(strA)isletter(strA)ispace(strA)2.字符串的基本操作-—連接、查找和替換strcat(S1,S2,…,Sn)連接字符串S1,S2,…,Sn,得到一個(gè)新的字符串strvcat(T1,T2,…,Tn)垂直連接字符串T1,T2,…,Tn,得到一個(gè)字符串矩陣(多行字符串)str2mat(T1,T2,…,Tn)和strvcat(T1,T2,…,Tn)基本一樣strmatch(S1,S
4、2)逐行搜索字符串矩陣S2,給出以S1開(kāi)頭的那些行的行號(hào)findstr(S1,S2)查找S1在S2中出現(xiàn)的位置(如果S1短),或者S2在S1中出現(xiàn)的位置(如果S2短)。strfind(S1,S2)在S1中查找S2出現(xiàn)的位置。strrep(S1,S2,S3)把字符串S1的所有出現(xiàn)S2的地方替換為S3strtok(S)查找字符串S的第一個(gè)間隔符(空格符、制表符、回車(chē)符)前的內(nèi)容blanks(n)生成含有n個(gè)空格的字符串deblank(S)返回刪除字符串S尾部空格得到的字符串[例]在命令窗口中輸入以下語(yǔ)句,觀察并分析執(zhí)行結(jié)果strA=‘IloveMatlab.';strB='HelovesMatl
5、ab.';strC='IloveMath.';str=[strAblanks(4)strBblanks(4)strCblanks(4)]str2=deblank(str)S1=strcat(strA,strB,strC)S2=strvcat(strA,strB,strC)strmatch('I',S2)P=findstr(S1,'love')Q=findstr(S1,'OK')S3=strrep(S1,'I','We')Token=strtok('Thisisaexample.')3.字符串比較函數(shù)格式:strcmp(S1,S2)功能:比較字符串S1和S2是否相等。如果相同則返回1,否則返回
6、0格式:strcmpi(S1,S2)功能:在忽略字母大小寫(xiě)的情況下,比較字符串S1和S2是否相等。如果相同則返回1,否則返回0格式:strncmp(S1,S2,n)功能:比較兩個(gè)字符串S1和S2的前n個(gè)字符是否相等。如果相同則返回1,否則返回0格式:strncmpi(S1,S2,n)功能:在忽略字母大小寫(xiě)的情況下,比較字符串S1和S2的前n個(gè)字符是否相等。如果相同則返回1,否則返回0字符串比較的例子[例]在命令窗口中輸入以下語(yǔ)句,觀察并分析執(zhí)行結(jié)果str1='hello';str2='Hello';str3='hello';strcmp(str1,str2),strcmp(str1,str3
7、)strcmpi(str1,str2),strcmpi(str1,str3)strncmp(str1,str2,5),strncmp(str1,str3,5)strncmpi(str1,str2,5),strncmpi(str1,str3,5)4.字符串轉(zhuǎn)換函數(shù)字符串轉(zhuǎn)換函數(shù)主要有三類(lèi):大小寫(xiě)轉(zhuǎn)換、ASCII碼與字符串之間的轉(zhuǎn)換、數(shù)值(或數(shù)值數(shù)組)與字符串的轉(zhuǎn)換。常用的字符串轉(zhuǎn)換函數(shù)upper(A)把字符串A