MATLAB编程与应用系列-第4章 字符、元胞和结构数组(2)

2018-10-26  本文已影响0人  德特数据

本系列教程来源于出版设计《基于MATLAB编程基础与典型应用书籍》,如涉及版权问题,请联系:156204968@qq.com。 出版社:人民邮电出版社, 页数:525。

本系列教程目前基于MATLABR2006a,可能对于更高级版本的功能和函数有差异,教程中如有问题,请联系:156204968@qq.com

4.1.4 字符串的比较

字符串的比较通过以下两个函数来实现。

strcmp(x,y)
strncmp(x,y,n)

strcmp(x,y)函数比较字符串x和y的内容是否相同,如果相同返回1,否则返回0。当指定参数n时,strncmp(x,y,n)函数比较字符串x和y的前n个字符是否相同,返回值为1则相同,为0则不同。

【例4.5】字符串的比较
在命令窗口中输入以下内容,创建字符数组ss1和ss2。
>> ss1='比较字符串x和y的内容是否相同';
>> ss2='比较字符串x和y的前n个字符是否相同';
①比较字符串ss1和ss2的内容是否相同。在命令窗口输入命令:
>> strcmp(ss1,ss2) %返回值如果为1则相同,为0则不同
返回结果如下:
ans = 0
②比较字符串ss1和ss2的前10个字符是否相同。在命令窗口输入命令:
>> strncmp(ss1,ss2,10)
返回结果如下:
ans = 0
③比较字符串ss1和ss2的前5个字符是否相同。在命令窗口输入命令:
>> strncmp(ss1,ss2,5)
返回结果如下:
ans = 1

前面介绍的是使用函数strmcmp对字符串进行比较,除此之外,该函数还可以对字符串数组中的字符串进行逐个比较。

在命令窗口中输入以下内容,生成的字符串数组ss3和ss4如下所示:
>> ss3={'比较';'字符串';'是否';'相等'}
ss3 =
'比较'
'字符串'
'是否'
'相等'
>> ss4={'比较';'字符串'; '具体';'内容'}
ss4 =
'比较'
'字符串'
'具体'
'内容'
①比较数组ss3和ss4中字符串的内容。在命令窗口中输入以下命令:
>> strcmp(ss3,ss4) %比较ss3和ss4中字符串是否相同
返回的结果如下:
ans =
1
1
0
0
②比较ss3和ss4中所有字符串中的第一个字符是否相同,在命令窗口中输入以下命令:
>> strncmp(ss3,ss4,1) %比较ss3和ss4中所有字符串中的第一个字符是否相同
返回的结果如下:
ans =
1
1
0
0
③比较ss3和ss4中所有字符串中的前4个字符是否相同,在命令窗口中输入以下命令:
>> strncmp(ss3,ss4,4) %比较ss3和ss4中所有字符串中的前4个字符是否相同
返回的结果如下:
ans =
0
0
0
0
⑤④对多行字符数组进行比较的时候,两个字符串数组的维数必须相同,否则将出错。在命令窗口中输入以下内容,创建字符串数组ss5。
>> ss5={'比';'较';'字';'符';'串';'x';'和';'y';'的';'具';'体';'内';'容';'是'}
将字符数串组ss5与ss3进行比较。在命令命令窗口中输入以下内容:
>> strcmp(ss5,ss3) %%比较ss5和ss3中所有字符串中字符是否相同
运行结果如下:
??? Error using ==> strcmp
Inputs must be the same size or either one can be a scalar.

注意:如例4.5所示,对多行字符数组进行比较的时候,两个字符串数组的维数必须相同,否则出错。

作者:德特数据
联系方式:156204968@qq.com

上一篇下一篇

猜你喜欢

热点阅读