strcmp
比较字符串
说明
示例
比较两个字符向量
比较两个不同的字符向量。
s1 = 'Yes'; s2 = 'No'; tf = strcmp(s1,s2)
tf = logical
0
strcmp
返回 0
,因为 s1
和 s2
不相等。
比较两个相等的字符向量。
s1 = 'Yes'; s2 = 'Yes'; tf = strcmp(s1,s2)
tf = logical
1
strcmp
返回 1
,因为 s1
和 s2
相等。
在元胞数组中查找文本
在字符向量元胞数组中查找单词 'upon'
。
s1 = 'upon'; s2 = {'Once','upon'; 'a','time'}; tf = strcmp(s1,s2)
tf = 2x2 logical array
0 1
0 0
数组 s2
中仅出现一处 s1
,位于元素 s2(1,2)
位置。
比较两个字符向量元胞数组
比较两个字符向量元胞数组中的每个元素。
s1 = {'Time','flies','when'; 'you''re','having','fun.'}; s2 = {'Time','drags','when'; 'you''re','anxiously','waiting.'}; tf = strcmp(s1,s2)
tf = 2x3 logical array
1 0 1
1 0 0
s1
和 s2
之间有三处元素相等。这些是 'Time'
(位于索引 (1,1)
处)、'when'
(位于索引 (1,3)
处)和 'you''re'
(位于索引 (2,1)
处)。
比较字符串数组
使用 strcmp
比较字符串数组。
s1 = ["A","bc"; "def","G"]; s2 = ["B","c"; "def","G"]; tf = strcmp(s1,s2)
tf = 2x2 logical array
0 0
1 1
您可以使用关系运算符对字符串数组进行比较和排序,就像您可以对数值数组进行比较和排序一样。
使用 ==
可确定两个字符串数组的哪些元素是相等的。
s1 == s2
ans = 2x2 logical array
0 0
1 1
使用 <
可确定,按照 ASCII 字典顺序,s1
的哪些元素小于 s2
的相应元素。
s1 < s2
ans = 2x2 logical array
1 1
0 0
输入参数
s1,s2
— 输入文本
字符向量 | 字符数组 | 字符向量元胞数组 | 字符串数组
输入文本,其中每个输入指定为字符向量、字符数组、字符向量元胞数组或字符串数组。输入的顺序不影响比较结果。
如果
s1
和s2
都是字符串数组或字符向量元胞数组,则s1
和s2
的大小必须相同,除非其中一个是标量。如果
s1
和s2
都是具有多行的字符数组,则s1
和s2
可以具有不同的行数。将字符向量非标量元胞数组或字符串数组与多行字符数组进行比较时,元胞数组或字符串数组必须是行数与字符数组相同的列向量。
数据类型: char
| cell
| string
输出参量
tf
— True 或 false 结果
1
| 0
| 逻辑数组
True 或 false 结果,以数据类型 logical
为 1
或 0
形式返回。
如果每个输入都是字符串标量、标量元胞或字符向量,则
tf
是标量。如果至少一个输入是字符串数组或字符向量元胞数组,则
tf
是大小与输入数组相同的数组。如果一个输入是具有多行的字符数组,并且另一个输入是标量元胞或字符串标量,则
tf
是n
×1
数组,其中n
是字符数组中的行数。如果两个输入都是字符数组,则
tf
是标量。
提示
strcmp
函数用于比较文本。如果用于不受支持的数据类型,strcmp
始终返回0
。对于不区分大小写的文本比较,请使用
strcmpi
而不是strcmp
。虽然
strcmp
与 C 函数共享名称,但它不遵循在文本输入匹配时返回0
的 C 语言惯例。对于字符串数组,可以使用关系运算符(
==
、~=
、<
、>
、<=
、>=
)而不是strcmp
。您可以对字符串数组进行比较和排序,就像您对数值数组进行比较和排序一样。
扩展功能
tall 数组
对行数太多而无法放入内存的数组进行计算。
此函数完全支持 tall 数组。有关详细信息,请参阅 tall 数组。
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
用法说明和限制:
不支持枚举输入。
如果一个输入为元胞数组,另一个输入为字符数组,则字符数组必须为编译时行向量。
如果两个输入均为空字符数组,只是大小不同,则生成的代码将返回
true
。
基于线程的环境
使用 MATLAB® backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool
加快代码运行速度。
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
分布式数组
使用 Parallel Computing Toolbox™ 在集群的组合内存中对大型数组进行分区。
用法说明和限制:
输入必须为字符串数组或字符向量元胞数组。
有关详细信息,请参阅Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox)。
版本历史记录
在 R2006a 之前推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)