《第5章字符串、单元数组和结构.ppt》由会员分享,可在线阅读,更多相关《第5章字符串、单元数组和结构.ppt(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第5章 字符串、单元数组和结构5.1 5.1 字符和字符串字符和字符串字符和字符串字符和字符串5.1.1 5.1.1 设定字符串设定字符串设定字符串设定字符串1.1.字符串定义字符串定义字符串定义字符串定义字符串是用单撇号括起来的字符序列。字符串是用单撇号括起来的字符序列。字符串是用单撇号括起来的字符序列。字符串是用单撇号括起来的字符序列。格式:字符数组名格式:字符数组名格式:字符数组名格式:字符数组名=字符序列字符序列字符序列字符序列 说明说明说明说明:(1 1)字符序列由若干个字符组成)字符序列由若干个字符组成)字符序列由若干个字符组成)字符序列由若干个字符组成.(2 2)每一个字符)每一
2、个字符)每一个字符)每一个字符(包括空格包括空格包括空格包括空格)都是字符数组的元素都是字符数组的元素都是字符数组的元素都是字符数组的元素.例,例,例,例,abffabff 表示字符串表示字符串表示字符串表示字符串abffabff(3 3)字符串内的单引号是由两个连续的单引号表示。)字符串内的单引号是由两个连续的单引号表示。)字符串内的单引号是由两个连续的单引号表示。)字符串内的单引号是由两个连续的单引号表示。12er&*234 12er&*234 表示字符串表示字符串表示字符串表示字符串12er&*23412er&*234例例例例5-15-1 strstr=I have many good
3、friends!=I have many good friends!strstr=I have many good friends!I have many good friends!whoswhos%当前工作空间变量及信息清单。当前工作空间变量及信息清单。当前工作空间变量及信息清单。当前工作空间变量及信息清单。Name Size Bytes ClassName Size Bytes Class strstr 1x25 50 char array 1x25 50 char arrayGrand total is 25 elements using 50 bytesGrand total is 2
4、5 elements using 50 bytes(4 4)字符串当作一个行向量,行向量每个元素对应一个字)字符串当作一个行向量,行向量每个元素对应一个字)字符串当作一个行向量,行向量每个元素对应一个字)字符串当作一个行向量,行向量每个元素对应一个字符,其标识方法和数值行向量相同。符,其标识方法和数值行向量相同。符,其标识方法和数值行向量相同。符,其标识方法和数值行向量相同。例,例,例,例,u=we must study hard!u=we must study hard!u=u=we must study hard!we must study hard!v=and we should nev
5、er forget our country!v=and we should never forget our country!v=v=and we should never forget our country!and we should never forget our country!w=w=u,vu,v w=w=we must study we must study hard!andhard!and we should never forget our we should never forget our country!country!(5 5 5 5)字符串可以有多个行,但每行必须有
6、相同数目的列数。)字符串可以有多个行,但每行必须有相同数目的列数。)字符串可以有多个行,但每行必须有相同数目的列数。)字符串可以有多个行,但每行必须有相同数目的列数。例例例例 t=t=xiaoxiao mingming kaokao shangshang le le daxuedaxue xiaofangxiaofang meiyoumeiyou kaoshangdaxuekaoshangdaxue t=t=xiaoxiao mingming kaokao shangshang le le daxuedaxuexiaofangxiaofang meiyoumeiyou kaoshangdaxu
7、ekaoshangdaxue t=t=xiaoxiao mingming kaokao shangshang le le daxuedaxue xiaofangxiaofang meiyoumeiyou kaoshangdaxuekaoshangdaxue?Error using=?Error using=vertcatvertcatAll rows in the bracketed expression must have All rows in the bracketed expression must have the same the same number of columns.nu
8、mber of columns.2.2.计算字符数组的维数计算字符数组的维数计算字符数组的维数计算字符数组的维数格式格式格式格式:size(:size(字符数组字符数组字符数组字符数组)例例例例:a=matrix lab;:a=matrix lab;size(asize(a)ansans=1 10%1 10%表示表示表示表示a a的维数是的维数是的维数是的维数是1 1行行行行4 4列列列列5.1.2 5.1.2 字符串的操作字符串的操作字符串的操作字符串的操作1.1.字符串元素的读取字符串元素的读取字符串元素的读取字符串元素的读取(1)(1)利用数组操作工具进行读取利用数组操作工具进行读取利用
9、数组操作工具进行读取利用数组操作工具进行读取 格式:字符数组串名格式:字符数组串名格式:字符数组串名格式:字符数组串名(数值数值数值数值m)m)功能:读取第功能:读取第功能:读取第功能:读取第mm个的元素。个的元素。个的元素。个的元素。strstr=今天,是今天,是今天,是今天,是20052005年年年年1010月月月月2525日,我们班一起去上海旅游。日,我们班一起去上海旅游。日,我们班一起去上海旅游。日,我们班一起去上海旅游。strstr=今天,是今天,是今天,是今天,是20052005年年年年1010月月月月2525日,我们班一起去上海旅游。日,我们班一起去上海旅游。日,我们班一起去上海
10、旅游。日,我们班一起去上海旅游。str(6)str(6)ansans=0%0%这是这是这是这是20052005中第中第中第中第1 1个个个个0 0。str(17)str(17)ansans=我我我我(2 2)读取字符串中的多个字符。)读取字符串中的多个字符。)读取字符串中的多个字符。)读取字符串中的多个字符。格式:字符数组串名格式:字符数组串名格式:字符数组串名格式:字符数组串名(初值位置:步长:终止位置初值位置:步长:终止位置初值位置:步长:终止位置初值位置:步长:终止位置)s=str(10:28)s=str(10:28)s=s=1010月月月月2525日,我们班一起去上海旅游。日,我们班一
11、起去上海旅游。日,我们班一起去上海旅游。日,我们班一起去上海旅游。w=str(28:-1:10)w=str(28:-1:10)w=w=。游旅海上去起一班们我,日。游旅海上去起一班们我,日。游旅海上去起一班们我,日。游旅海上去起一班们我,日5252月月月月0101(2 2)使用使用使用使用dispdisp函数显示字符串函数显示字符串函数显示字符串函数显示字符串 dispdisp(字符串名)(字符串名)(字符串名)(字符串名)例例例例5-3,5-3,disp(strdisp(str)今天,是今天,是今天,是今天,是20052005年年年年1010月月月月2525日,我们班一起去上海旅游。日,我们班
12、一起去上海旅游。日,我们班一起去上海旅游。日,我们班一起去上海旅游。disp(sdisp(s)1010月月月月2525日,我们班一起去上海旅游。日,我们班一起去上海旅游。日,我们班一起去上海旅游。日,我们班一起去上海旅游。2.2.字符串的基本变换字符串的基本变换字符串的基本变换字符串的基本变换(1 1)字符串的字符串的字符串的字符串的ASCIIASCII码操作码操作码操作码操作 格式:格式:格式:格式:abs(abs(字符串名字符串名字符串名字符串名)功能:计算字符串中对应字符的功能:计算字符串中对应字符的功能:计算字符串中对应字符的功能:计算字符串中对应字符的ASCIIASCII码。码。码。
13、码。a=a=abs(strabs(str)a=a=Columns 1 through 4 Columns 1 through 4 20170 22825 65292 26159 20170 22825 65292 26159 Columns 5 through 8 Columns 5 through 8 50 48 50 48 4848 53 53 Columns 9 through 12 Columns 9 through 12 24180 49 48 26376 24180 49 48 26376 Columns 13 through 16 Columns 13 through 16 50
14、 53 26085 65292 50 53 26085 65292 Columns 17 through 20 Columns 17 through 20 25105 20204 29677 19968 25105 20204 29677 19968 Columns 21 through 24 Columns 21 through 24 36215 21435 19978 28023 36215 21435 19978 28023 Columns 25 through 28 Columns 25 through 28 26053 28216 12290 32 26053 28216 12290
15、 32(2 2)使用)使用)使用)使用charchar函数进行逆变换函数进行逆变换函数进行逆变换函数进行逆变换格式:格式:格式:格式:char(ASCIIchar(ASCII码码码码)功能:将功能:将功能:将功能:将ASCIIASCII码转换为字符串。码转换为字符串。码转换为字符串。码转换为字符串。例,例,例,例,b=b=char(achar(a)b=b=今天,是今天,是今天,是今天,是20052005年年年年1010月月月月2525日,我们班一起去上海旅游。日,我们班一起去上海旅游。日,我们班一起去上海旅游。日,我们班一起去上海旅游。(3 3)字符串的执行)字符串的执行)字符串的执行)字符串
16、的执行 格式:格式:格式:格式:evaleval(字符串表达式字符串表达式字符串表达式字符串表达式)功能:计算字符串表达式的值。功能:计算字符串表达式的值。功能:计算字符串表达式的值。功能:计算字符串表达式的值。例例例例,已知已知已知已知 a=pi,b=355/113a=pi,b=355/113,求,求,求,求a-ba-b的值。的值。的值。的值。a=pi;a=pi;b=355/113;b=355/113;a-b a-bans=ans=-2.6676e-007-2.6676e-007 x=a-b;x=a-b;v=eval(x)v=eval(x)v=v=-2.6676e-007-2.6676e-0
17、073.3.字符串的运算字符串的运算字符串的运算字符串的运算(1 1)判断字符串是否相等)判断字符串是否相等)判断字符串是否相等)判断字符串是否相等 格式:格式:格式:格式:strcmpstrcmp(字符串字符串字符串字符串1,1,字符串字符串字符串字符串2)2)功能:若字符串功能:若字符串功能:若字符串功能:若字符串1 1与字符串与字符串与字符串与字符串2 2相等,系统返回相等,系统返回相等,系统返回相等,系统返回1 1,否则,返回,否则,返回,否则,返回,否则,返回0 0。格式:格式:格式:格式:strnmpstrnmp(字符串字符串字符串字符串1,1,字符串字符串字符串字符串2,n)2,
18、n)功能:若字符串功能:若字符串功能:若字符串功能:若字符串1 1与字符串与字符串与字符串与字符串2 2的前的前的前的前n n个字符相等,系统返回个字符相等,系统返回个字符相等,系统返回个字符相等,系统返回1 1,否则,返回,否则,返回,否则,返回,否则,返回0 0。例例例例5-75-7 words1=situate;words1=situate;words2=words2=situpsitup;N=strcmp(words1,words2)N=strcmp(words1,words2)N=N=0 0 Y=strncmp(words1,words2,3)Y=strncmp(words1,wor
19、ds2,3)Y=Y=1 1 N=strncmp(words1,words2,4)N=strncmp(words1,words2,4)N=N=1 1 N=strncmp(words1,words2,5)N=strncmp(words1,words2,5)N=N=0 0(2 2)通过字符的运算比较字符)通过字符的运算比较字符)通过字符的运算比较字符)通过字符的运算比较字符格式:字符串格式:字符串格式:字符串格式:字符串1 1 比较符号比较符号比较符号比较符号 字符串字符串字符串字符串2 2比较符号见表比较符号见表比较符号见表比较符号见表5-25-2。注意:字符串。注意:字符串。注意:字符串。注意:
20、字符串1 1与字符串与字符串与字符串与字符串2 2要具有相同维数。要具有相同维数。要具有相同维数。要具有相同维数。例例例例5-85-8 F1=F1=小明考上了清华大学物理系小明考上了清华大学物理系小明考上了清华大学物理系小明考上了清华大学物理系 F1=F1=小明考上了清华大学物理系小明考上了清华大学物理系小明考上了清华大学物理系小明考上了清华大学物理系 F2=F2=小芳在百货大楼做销售人员小芳在百货大楼做销售人员小芳在百货大楼做销售人员小芳在百货大楼做销售人员 F2=F2=小芳在百货大楼做销售人员小芳在百货大楼做销售人员小芳在百货大楼做销售人员小芳在百货大楼做销售人员 F1=F2 F1=F2a
21、nsans=Columns 1 through 8 Columns 1 through 8 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 Columns 9 through 12 Columns 9 through 12 0 1 1 1 0 1 1 1(3 3)字符串中字符的分类)字符串中字符的分类)字符串中字符的分类)字符串中字符的分类 格式:格式:格式:格式:isspaceisspace(字符串字符串字符串字符串)功能:字符串中的字符若是空白字符,返回为功能:字符串中的字符若是空白字符,返回为功能:字符串中的字符若是空白字符,返回为功能:字符串中的字符若是空白字符,返回为
22、1 1,否则返回,否则返回,否则返回,否则返回为为为为0 0。realstringrealstring= http:/http:/ realstringrealstring= http:/http:/ A=A=isspace(realstringisspace(realstring)A=A=Columns 1 through 8 Columns 1 through 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Columns 9 through 16 Columns 9 through 16 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 Columns
23、17 through 24 Columns 17 through 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Columns 25 through 32 Columns 25 through 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0格式:格式:格式:格式:issletterissletter(字符串字符串字符串字符串)功能:字符串中的字符若是字母字符,返回为功能:字符串中的字符若是字母字符,返回为功能:字符串中的字符若是字母字符,返回为功能:字符串中的字符若是字母字符,返回为1 1,否则返回,否则返回,否则返回,否则返回为为为为0 0。例例
24、例例5-95-9 B=B=isletter(realstringisletter(realstring)B=B=Columns 1 through 8 Columns 1 through 8 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 Columns 9 through 16 Columns 9 through 16 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 Columns 17 through 24 Columns 17 through 24 1 1 1 0 0 0 1 1 1 1 1 0 0 0 1 1 Columns 25 through 32
25、Columns 25 through 32 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1(4 4)查找与替换查找与替换查找与替换查找与替换格式:格式:格式:格式:findstrfindstr(字符串字符串字符串字符串1,1,字符串字符串字符串字符串2)2)功能:查找字符串功能:查找字符串功能:查找字符串功能:查找字符串2 2(或字符串(或字符串(或字符串(或字符串1 1)在字符串)在字符串)在字符串)在字符串1 1(或字符串(或字符串(或字符串(或字符串2 2)的位置。若查找)的位置。若查找)的位置。若查找)的位置。若查找成功,返回第一个相同字符的具体位置,否则返回空。成功,
26、返回第一个相同字符的具体位置,否则返回空。成功,返回第一个相同字符的具体位置,否则返回空。成功,返回第一个相同字符的具体位置,否则返回空。例例例例5-105-10 s=How much wood would a woodchuck chuck?;s=How much wood would a woodchuck chuck?;a1=a1=findstr(s,afindstr(s,a)a1=a1=21 21 a1=a1=findstr(a,sfindstr(a,s)a1=a1=21 21 a1=a1=findstr(s,woodfindstr(s,wood)a1=a1=10 23 10 23 a
27、1=a1=findstr(s,Woodfindstr(s,Wood)a1=a1=a1=a1=findstr(sfindstr(s,),)a1=a1=4 9 14 20 22 32 4 9 14 20 22 32格式:格式:格式:格式:strfindstrfind(字符串字符串字符串字符串1,1,字符串字符串字符串字符串2)2)功能:查找字符串功能:查找字符串功能:查找字符串功能:查找字符串2 2在字符串在字符串在字符串在字符串1 1的位置。若查找成功,返回第一个相同的位置。若查找成功,返回第一个相同的位置。若查找成功,返回第一个相同的位置。若查找成功,返回第一个相同字符的具体位置,否则返回空。
28、若字符串字符的具体位置,否则返回空。若字符串字符的具体位置,否则返回空。若字符串字符的具体位置,否则返回空。若字符串2 2的长度大于字符串的长度大于字符串的长度大于字符串的长度大于字符串1 1的的的的长度时返回空。长度时返回空。长度时返回空。长度时返回空。例例例例5-115-11 s=How much wood would a woodchuck chuck?;s=How much wood would a woodchuck chuck?;b1=b1=strfind(s,astrfind(s,a)b1=b1=21 21 b2=b2=strfind(a,sstrfind(a,s)b2=b2=b
29、3=b3=strfind(s,woodstrfind(s,wood)b3=b3=10 23 10 23 b4=b4=strfind(s,Woodstrfind(s,Wood)b4=b4=b5=b5=strfind(sstrfind(s,),)b5=b5=4 9 14 20 22 32 4 9 14 20 22 32(5 5)字符串与数值的转换)字符串与数值的转换)字符串与数值的转换)字符串与数值的转换 (p68-69(p68-69页)页)页)页)num2str(num2str(实型变量实型变量实型变量实型变量)功能功能功能功能:将实型变量转换成字符串将实型变量转换成字符串将实型变量转换成字符串
30、将实型变量转换成字符串.int2str(int2str(整型变量整型变量整型变量整型变量)功能功能功能功能:将整型变量转换成字符串将整型变量转换成字符串将整型变量转换成字符串将整型变量转换成字符串.例例例例,a=1.2 3.4 5.6 7.8;,a=1.2 3.4 5.6 7.8;s=num2str(a)s=num2str(a)结果结果结果结果:s=:s=1.2 3.4 5.6 7.8 1.2 3.4 5.6 7.8 x=int2str(a)x=int2str(a)%转换前四舍五入取整转换前四舍五入取整转换前四舍五入取整转换前四舍五入取整 结果结果结果结果:x=:x=1 3 6 8 1 3 6
31、 8 a1=a1=size(asize(a)结果结果结果结果:a1=:a1=1 4 1 4%一行四个元素一行四个元素一行四个元素一行四个元素 s1=s1=size(ssize(s)结果结果结果结果:s1=:s1=%一行一行一行一行3939个元素,数字个元素,数字个元素,数字个元素,数字1.21.2为为为为3 3个元素,个元素,个元素,个元素,1 39 1 39%空格也作为一个元素。空格也作为一个元素。空格也作为一个元素。空格也作为一个元素。x1=x1=size(xsize(x)结果结果结果结果:x1=:x1=1 10 1 10%一行一行一行一行1010个元素个元素个元素个元素5.2 5.2 单
32、元数组单元数组单元数组单元数组(不讲不讲不讲不讲)一、单元数组的生成一、单元数组的生成一、单元数组的生成一、单元数组的生成1 1、直接生成单元数组、直接生成单元数组、直接生成单元数组、直接生成单元数组2 2、使用、使用、使用、使用cellcell函数生成单元数组函数生成单元数组函数生成单元数组函数生成单元数组二、单元数组的操作二、单元数组的操作二、单元数组的操作二、单元数组的操作1 1、单元数组内容的显示或获取、单元数组内容的显示或获取、单元数组内容的显示或获取、单元数组内容的显示或获取2 2、单元数组的变维处理、单元数组的变维处理、单元数组的变维处理、单元数组的变维处理5.3 5.3 结构型
33、变量结构型变量结构型变量结构型变量一、结构型变量的生成一、结构型变量的生成一、结构型变量的生成一、结构型变量的生成1 1、直接输入法、直接输入法、直接输入法、直接输入法2 2、使用、使用、使用、使用structstruct函数生成结构型变量函数生成结构型变量函数生成结构型变量函数生成结构型变量二、结构型变量的操作二、结构型变量的操作二、结构型变量的操作二、结构型变量的操作1 1、在结构体变量中添加成员变量、在结构体变量中添加成员变量、在结构体变量中添加成员变量、在结构体变量中添加成员变量2 2、在结构体变量中删除成员变量、在结构体变量中删除成员变量、在结构体变量中删除成员变量、在结构体变量中删除成员变量3 3、在结构体变量中调用成员变量、在结构体变量中调用成员变量、在结构体变量中调用成员变量、在结构体变量中调用成员变量4 4、getefieldgetefield和和和和setfieldsetfield函数的使用函数的使用函数的使用函数的使用