strcmp

Синтаксис

tf = strcmp(s1,s2)

Описание

пример

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 | ячейка | строка

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

свернуть все

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

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

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

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

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

Советы

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

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

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

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

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

Смотрите также

| | | | | | | |

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

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