Contenu principal

strcmp

R2026b

Comparer des chaînes de caractères

Description

tf = strcmp(s1,s2) compare s1 et s2 et renvoie 1 (true) s’ils sont identiques et 0 (false) dans le cas contraire. Le texte est considéré comme identique si sa taille et son contenu sont les mêmes. Le résultat tf renvoyé a le type de données logical.

Les arguments en entrée peuvent être constitués de n’importe quelle combinaison de tableaux de chaînes de caractères, de vecteurs de caractères et de cell arrays de vecteurs de caractères.

exemple

Exemples

réduire tout

Comparez deux vecteurs de caractères différents.

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

strcmp renvoie 0, car s1 et s2 ne sont pas égaux.

Comparez deux vecteurs de caractères égaux.

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

strcmp renvoie 1, car s1 et s2 sont égaux.

Recherchez le terme 'upon' dans un cell array de vecteurs de caractères.

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

   0   1
   0   0

Il existe une seule occurrence de s1 dans le tableau s2 et elle se situe à l’élément s2(1,2).

Comparez chacun des éléments de deux cell arrays de vecteurs de caractères.

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

   1   0   1
   1   0   0

Il existe trois instances d’éléments égaux dans s1 et s2. Il s’agit de 'Time' aux indices (1,1), de 'when' aux indices (1,3) et de 'you''re' aux indices (2,1).

Comparez des tableaux de chaînes de caractères avec strcmp.

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

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

   0   0
   1   1

Vous pouvez comparer et trier des tableaux de chaînes de caractères à l’aide d’opérateurs relationnels comme vous le feriez avec des tableaux numériques.

Utilisez == pour déterminer quels éléments de deux tableaux de chaînes de caractères sont égaux.

s1 == s2
ans = 2×2 logical array

   0   0
   1   1

Utilisez < pour déterminer quels éléments de s1 sont inférieurs aux éléments correspondants de s2 dans l’ordre du dictionnaire ASCII.

s1 < s2
ans = 2×2 logical array

   1   1
   0   0

Arguments d'entrée

réduire tout

Texte en entrée, dont chaque entrée peut être spécifiée sous forme d’un vecteur de caractères, d’un tableau de caractères, d’un cell array de vecteurs de caractères ou d’un tableau de chaînes de caractères. L’ordre des entrées n’a aucune incidence sur les résultats de la comparaison.

  • Si s1 et s2 sont tous les deux des tableaux de chaînes de caractères ou des cell arrays de vecteurs de caractères, s1 et s2 doivent être de même taille, sauf si l’un d’eux est un scalaire.

  • Si s1 et s2 sont tous les deux des tableaux de caractères comportant plusieurs lignes, s1 et s2 peuvent avoir un nombre de lignes différent.

  • Lorsqu’il s’agit de comparer un cell array non scalaire de vecteurs de caractères ou un tableau de chaînes de caractères à un tableau de caractères comportant plusieurs lignes, le cell array ou le tableau de chaînes de caractères doit être un vecteur colonne comportant le même nombre de lignes que le tableau de caractères.

Types de données : char | cell | string

Arguments de sortie

réduire tout

Résultat « true » ou « false », renvoyé en tant que 1 ou 0 avec le type de données logical.

  • Si chaque entrée est un string scalar, une cellule scalaire ou un vecteur de caractères, tf est un scalaire.

  • Si au moins une entrée est un tableau de chaînes de caractères ou un cell array de vecteurs de caractères, tf est un tableau de même taille que celui en entrée.

  • Si une entrée est un tableau de caractères à plusieurs lignes et que l’autre est une cellule scalaire ou un string scalar, tf est un tableau de n x 1, où n est le nombre de lignes du tableau de caractères.

  • Si les deux entrées sont des tableaux de caractères, tf est un scalaire.

Conseils

  • La fonction strcmp est destinée à la comparaison de texte. Si vous l’utilisez avec des types de données non supportés, strcmp renvoie systématiquement 0.

  • Pour une comparaison de texte non sensible à la casse, utilisez strcmpi au lieu de strcmp.

  • Bien que la fonction strcmp ait le même nom qu’une fonction C, elle ne suit pas la convention du langage C consistant à renvoyer 0 lorsque les entrées textuelles correspondent.

  • Avec les tableaux de chaînes de caractères, vous pouvez utiliser des opérateurs relationnels (==, ~=, <, >, <=, >=) au lieu de strcmp. Vous pouvez comparer et trier des tableaux de chaînes de caractères comme vous le feriez avec des tableaux numériques.

Capacités étendues

développer tout

Historique des versions

Introduit avant R2006a