strncmp

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

Синтаксис

Описание

пример

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

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

Примеры

свернуть все

Создайте два разных вектора символов. Сравните первые 11 символов из них.

s1 = 'Kansas City, KS';
s2 = 'Kansas City, MO';
tf = strncmp(s1,s2,11)
tf = logical
   1

tf является 1 потому что оба вектора символов начинаются со 'Kansas City'.

Сравните два векторов символов, используя strcmp.

tf = strcmp(s1,s2)
tf = logical
   0

tf является 0 потому что s1 и s2 заканчивается разными символами.

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

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

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

   0
   1
   1
   1
   0

tf является 1 для всех имен, первые четыре символа которых 'Jean'.

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

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

   0
   1
   1
   1
   0

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

свернуть все

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

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

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

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

Типы данных: char | cell | string

Максимальное количество символов для сравнения, заданное как целое число.

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

  • Если n меньше 0, затем strncmp рассматривает его как 0.

Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

свернуть все

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

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

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

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

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

Совет

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

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

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

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

.
Представлено до R2006a
Для просмотра документации необходимо авторизоваться на сайте