Main Content

strncmpi

比较字符串的前 n 个字符(不区分大小写)

说明

示例

tf = strncmpi(s1,s2,n) 比较 s1s2 的前 n 个字符,忽略字母的任何大小写差异。如果二者相同,函数将返回 1 (true),否则返回 0 (false)。如果两个文本段的内容一直到结尾都相同或前 n 个字符相同(以先出现者为准,忽略大小写),则将这两个文本段视为相同。返回结果 tf 的数据类型为 logical

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

示例

全部折叠

创建两个字符向量。比较前四个字符,忽略大小写。

s1 = 'DATA.TAR.GZ';
s2 = 'data-samples.xls';

tf = strncmpi(s1,s2,4)
tf = logical
   1

tf1,因为 s1'DATA' 开头,s2'data' 开头。

创建一个包含名字的字符串数组。查找以 'JEAN' 开头的名字,忽略大小写。

s1 = ["Jacques";
      "Jean";
      "Jeanne";
      "Jean-Luc";
      "Julie"];
s2 = "JEAN";

tf = strncmpi(s1,s2,4)
tf = 5x1 logical array

   0
   1
   1
   1
   0

如果忽略大小写,对于前四个字符与 'JEAN' 匹配的所有名字,tf1

也可以使用 startsWith 函数。

tf = startsWith(s1,s2,'IgnoreCase',true)
tf = 5x1 logical array

   0
   1
   1
   1
   0

输入参数

全部折叠

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

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

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

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

数据类型: char | cell | string

要比较的最大字符数,指定为整数。

  • 如果 n0,则 strncmpi 始终返回 1。按照惯例,字符向量或字符串标量的第零个字符始终为 '',即一个 0×0 的字符数组。

  • 如果 n 小于 0,则 strncmpi 将其视为 0

数据类型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

输出参数

全部折叠

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

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

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

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

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

提示

  • strncmpi 函数用于比较文本。如果用于数值数组,strncmpi 始终返回 0

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

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

扩展功能

版本历史记录

在 R2006a 之前推出