strncmp

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

Синтаксис

Описание

пример

tf = strncmp(s1,s2,n) выдерживает сравнение до n символы s1 и s2. Функция возвращает 1 TRUE) если эти два идентичны и 0 ложь) в противном случае. Текст рассматривается идентичным, если содержимое каждого является тем же самым в конец или первым 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- 0 массив символов.

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

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

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

свернуть все

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

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

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

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

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

Советы

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

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

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

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

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