Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

strcmpi

比较字符串(不区分大小写)

说明

示例

tf = strcmpi(s1,s2) 将比较 s1s2,并忽略字母大小写差异。如果二者相同,函数将返回 1 (true),否则返回 0 (false)。如果文本的大小和内容相同,则它们将视为相等,不考虑大小写。返回结果 tf 的数据类型为 logical

输入参数可以是字符串数组、字符向量和字符向量元胞数组的任何组合。

示例

全部折叠

比较两个不同的字符向量,并忽略字母大小写差异。

s1 = 'Yes';
s2 = 'No';
tf = strcmpi(s1,s2)
tf = logical
   0

strcmpi 返回 0,因为 s1s2 不相等,即使忽略大小写也是如此。

比较两个相等的字符向量。

s1 = 'Yes';
s2 = 'yes';
tf = strcmpi(s1,s2)
tf = logical
   1

strcmpi 返回 1,因为忽略大小写时 s1s2 相等。

在字符向量元胞数组中查找与单词 'once' 匹配的文本。忽略大小写。

s1 = 'once';
s2 = {'Once','upon';
      'a','time'};
tf = strcmpi(s1,s2)
tf = 2x2 logical array

   1   0
   0   0

如果忽略大小写,数组 s2 中将会出现一处 s1,它出现在元素 s2(1,1) 的位置。

创建两个字符向量元胞数组。要对它们进行比较并忽略大小写,请使用 strcmpi 函数。

s1 = {'Tinker', 'Tailor';
      '  Soldier', 'Spy'};
s2 = {'Tinker', 'Baker';
      'Soldier', 'SPY'};

tf = strcmpi(s1,s2)
tf = 2x2 logical array

   1   0
   0   1

tf(1,1)1,因为 'Tinker' 位于两个数组的第一个元胞中。tf(2,2)1,因为 'Spy''SPY' 只有大小写不同。tf(2,1)0,因为 s1(2,1) 中的 ' Soldier' 有空白字符,而 s2(2,1)'Soldier' 没有。

从 R2017a 开始,您可以使用双引号创建字符串。使用 strcmpi 比较两个字符串数组,并忽略大小写。

s1 = ["A","bc";
      "def","G"];
s2 = ["B","c";
      "DEF","G"];

tf = strcmpi(s1,s2)
tf = 2x2 logical array

   0   0
   1   1

输入参数

全部折叠

输入文本,其中每个输入指定为字符向量、字符数组、字符向量元胞数组或字符串数组。输入的顺序不影响比较结果。

  • 如果 s1s2 都是字符串数组或字符向量元胞数组,则 s1s2 的大小必须相同,除非其中一个是标量。

  • 如果 s1s2 都是具有多行的字符数组,则 s1s2 可以具有不同的行数。

  • 将字符向量非标量元胞数组或字符串数组与多行字符数组进行比较时,元胞数组或字符串数组必须是行数与字符数组相同的列向量。

数据类型: char | cell | string

输出参数

全部折叠

True 或 false 结果,以数据类型 logical10 形式返回。

  • 如果每个输入都是字符串标量或字符向量,则 tf 是标量。

  • 如果至少一个输入是字符串数组或字符向量元胞数组,则 tf 是大小与输入数组相同的数组。

  • 如果一个输入是具有多行的字符数组,并且另一个输入是标量元胞或字符串标量,则 tfn×1 数组,其中 n 是字符数组中的行数。

  • 如果两个输入都是字符数组,则 tf 是标量。

提示

  • strcmpi 函数用于比较文本。如果用于不受支持的数据类型,strcmpi 将始终返回 0

  • 对于区分大小写的文本比较,请使用 strcmp 而不是 strcmpi

  • 虽然 strcmpi 与 C 函数共享名称,但它不遵循在文本输入匹配时返回 0 的 C 语言惯例。

扩展功能

在 R2006a 之前推出