strncmpi

Сравните первые символы n (нечувствительных к регистру) строк

Синтаксис

tf = strncmpi(s1,s2,n)

Описание

пример

tf = strncmpi(s1,s2,n) сравнивает первые символы n s1 и s2, игнорируя любые различия в регистре. Функция возвращает 1 (true), если эти два идентичны и 0 (false) в противном случае. Текст рассматривается идентичным, если размер и содержимое каждого являются тем же самым, до первых символов n каждой части текста, игнорируя регистр. Результат возврата tf имеет тип данных logical.

Первые два входных параметра могут быть любой комбинацией массивов строк, векторов символов и массивов ячеек из символьных векторов.

Примеры

свернуть все

Создайте два векторов символов. Сравните первые четыре символа каждого, игнорируя регистр.

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

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

tf является 1, потому что s1 запускается с 'DATA', и s2 запускается с 'data'.

Начиная в R2017a, можно создать строки с помощью двойных кавычек. Создайте массив строк, который содержит имена. Найдите имена, которые запускаются с 'JEAN', игнорируя регистр.

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

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

   0
   1
   1
   1
   0

tf является 1 для всех имен, чьи сначала четыре символа совпадают с 'JEAN', когда вы игнорируете регистр.

Также можно использовать функцию startsWith.

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

   0
   1
   1
   1
   0

Входные параметры

свернуть все

Введите текст, с каждым входным параметром, заданным как вектор символа, символьный массив, массив ячеек из символьных векторов или массив строк. Порядок входных параметров не влияет на результаты сравнения.

  • Если и s1 и s2 являются массивами строк или массивами ячеек из символьных векторов, то s1 и s2 должны быть одного размера, если один из них не является скаляром.

  • Если и s1 и s2 являются символьными массивами с несколькими строками, то s1 и s2 могут иметь различные количества строк.

  • При сравнении нескалярного массива ячеек из символьных векторов или массива строк к многострочному символьному массиву, массив ячеек или массив строк должны быть вектором - столбцом с тем же количеством строк как символьный массив.

Типы данных: char | ячейка | строка

Количество символов, чтобы выдержать сравнение, заданный как целое число.

  • Если n является 0, то strncmpi всегда возвращает 1. Условно, нулевым символом вектора символа или скаляра строки всегда является '', 0-by-0 символьный массив.

  • Если n является меньше, чем 0, то strncmpi обрабатывает его как 0.

  • Если n больше, чем длина самого короткого входного текста, то strncmpi возвращает 0.

Типы данных: удвойтесь | единственный | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Выходные аргументы

свернуть все

Истинный или ложный результат, возвращенный как 1 или 0 типа данных logical.

  • Если каждый входной параметр является или скаляром строки или вектором символа, то tf является скаляром.

  • Если по крайней мере один входной параметр является или массивом строк или массивом ячеек из символьных векторов, то tf является массивом тот же размер как входной массив.

  • Если один входной параметр является символьным массивом с несколькими строками, и другой входной параметр является или скалярной ячейкой или скаляром строки, то tf является n-by-1 массив, где n является количеством строк в символьном массиве.

  • Если оба входных параметра являются символьными массивами, tf является скаляром.

Советы

  • Функция strncmpi предназначается для сравнения текста. Если используется на числовых массивах, strncmpi всегда возвращает 0.

  • Для чувствительного к регистру текстового сравнения используйте strncmp вместо strncmpi.

  • Несмотря на то, что strncmpi совместно использует имя с функцией C, он не следует соглашению языка C возврата 0, когда вводы текста соответствуют.

Расширенные возможности

Представлено до R2006a

Была ли эта тема полезной?