exponenta event banner

strcmp

Синтаксис

Описание

пример

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

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

Примеры

свернуть все

Сравнение двух различных векторов символов.

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

strcmp прибыль 0 потому что s1 и s2 не равны.

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

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

strcmp прибыль 1 потому что s1 и s2 равны.

Найти слово 'upon' в массиве ячеек символьных векторов.

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

   0   1
   0   0

Существует только одно вхождение s1 в массиве s2, и это происходит в элементе s2(1,2).

Сравните каждый элемент в двух массивах ячеек символьных векторов.

s1 = {'Time','flies','when';
      'you''re','having','fun.'};
s2 = {'Time','drags','when';
      'you''re','anxiously','waiting.'};
tf = strcmp(s1,s2)
tf = 2x3 logical array

   1   0   1
   1   0   0

Существует три экземпляра равных элементов в s1 и s2. Это 'Time' при индексах (1,1), 'when' при индексах (1,3), и 'you''re' при индексах (2,1).

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

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

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

   0   0
   1   1

Можно сравнивать и сортировать строковые массивы с помощью реляционных операторов так же, как и с числовыми массивами.

Использовать == определить, какие элементы двух строковых массивов равны.

s1 == s2
ans = 2x2 logical array

   0   0
   1   1

Использовать < чтобы определить, какие элементы s1 меньше соответствующих элементов s2 в соответствии с порядком словаря ASCII.

s1 < s2
ans = 2x2 logical array

   1   1
   0   0

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

свернуть все

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

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

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

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

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

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

свернуть все

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

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

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

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

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

Совет

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

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

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

  • Со строковыми массивами можно использовать реляционные операторы (==, ~=, <, >, <=, >=) вместо strcmp. Можно сравнивать и сортировать массивы строк так же, как и числовые массивы.

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

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