Hauptinhalt

strcmp

Vergleichen von Zeichenfolgen

Beschreibung

tf = strcmp(s1,s2) vergleicht s1 mit s2 und gibt 1 (true) zurück, wenn die zwei Zeichenfolgen identisch sind, andernfalls gibt die Funktion 0 (false) zurück. Text wird als identisch betrachtet, wenn Größe und Inhalt des Textes identisch sind. Das zurückgegebene Ergebnis tf weist den Datentyp logical auf.

Die Eingabeargumente können eine beliebige Kombination aus String Arrays, Zeichenvektoren und Zellenarrays aus Zeichenvektoren sein.

Beispiel

Beispiele

alle reduzieren

Vergleichen Sie zwei verschiedene Zeichenvektoren.

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

strcmp gibt 0 zurück, da s1 und s2 nicht gleich sind.

Vergleichen Sie zwei gleiche Zeichenvektoren.

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

strcmp gibt 1 zurück, da s1 und s2 gleich sind.

Suchen Sie das Wort 'upon' einem Zellenarray aus Zeichenvektoren.

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

   0   1
   0   0

s1 befindet sich nur einmal im Array s2, bei Element s2(1,2).

Vergleichen Sie jedes Element in zwei Zellenarrays aus Zeichenvektoren.

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

In s1 und s2 kommen gleiche Elemente drei Mal vor. Hierbei handelt es sich um 'Time' bei den Indizes (1,1), 'when' bei den Indizes (1,3) und 'you''re' bei den Indizes (2,1).

Vergleichen Sie String Arrays mithilfe von strcmp.

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

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

   0   0
   1   1

Sie können String Arrays genau wie numerische Arrays mit relationalen Operatoren vergleichen und sortieren.

Mit == können Sie ermitteln, welche Elemente von zwei String Arrays gleich sind.

s1 == s2
ans = 2×2 logical array

   0   0
   1   1

Mit < können Sie ermitteln, welche Elemente von s1 gemäß der Reihenfolge im ASCII-Dictionary kleiner als die entsprechenden Elemente von s2 sind.

s1 < s2
ans = 2×2 logical array

   1   1
   0   0

Eingabeargumente

alle reduzieren

Eingabetext, bei dem jede Eingabe als Zeichenvektor, Character Array (Zeichenarray), Zellenarray aus Zeichenvektoren oder String Array angegeben wird. Die Reihenfolge der Eingaben wirkt sich nicht auf die Vergleichsergebnisse aus.

  • Wenn sowohl s1 als auch s2 String Arrays oder Zellenarrays aus Zeichenvektoren sind, müssen s1 und s2 dieselbe Größe aufweisen, wenn es sich nicht bei einem dieser Elemente um einen Skalar handelt.

  • Wenn sowohl s1 als auch s2 Character Arrays (Zeichenarrays) mit mehreren Zeilen sind, können s1 und s2 eine unterschiedliche Zeilenanzahl aufweisen.

  • Wenn Sie ein nichtskalares Zellenarray aus Zeichenvektoren oder ein String Array mit einem mehrzeiligen Character Array vergleichen, muss es sich bei dem Zellenarray oder String Array um einen Spaltenvektor mit derselben Zeilenanzahl wie das Character Array handeln.

Datentypen: char | cell | string

Ausgabeargumente

alle reduzieren

Wahres oder falsches Ergebnis, zurückgegeben als 1 oder 0 mit dem Datentyp logical.

  • Wenn es sich bei jeder Eingabe um einen Zeichenfolgenskalar, eine Skalarzelle oder einen Zeichenvektor handelt, ist tf ein Skalar.

  • Wenn mindestens eine Eingabe ein String Array oder ein Zellenarray aus Zeichenvektoren ist, ist tf ein Array mit derselben Größe wie das Eingabearray.

  • Wenn eine Eingabe ein Zeichenarray mit mehreren Zeilen und die andere Eingabe entweder eine Skalarzelle oder ein Zeichenfolgenskalar ist, ist tf ein nx1-Array, bei dem n der Zeilenanzahl im Character Array entspricht.

  • Wenn beide Eingaben Character Arrays sind, ist tf ein Skalar.

Tipps

  • Die strcmp-Funktion ist für den Vergleich von Text gedacht. Wird strcmp bei nicht unterstützten Datentypen verwendet, gibt es immer 0 zurück.

  • Verwenden Sie zum Textvergleich ohne Berücksichtigung von Groß- und Kleinschreibung strcmpi statt strcmp.

  • Die strcmp-Funktion hat denselben Namen wie eine Funktion von C, befolgt aber nicht die Konvention der Sprache C, bei übereinstimmenden Texteingaben 0 zurückzugeben.

  • Mit String Arrays können Sie relationale Operatoren (==, ~=, <, >, <=, >=) statt strcmp verwenden. Sie können String Arrays genau wie numerische Arrays vergleichen und sortieren.

Erweiterte Fähigkeiten

alle erweitern

Versionsverlauf

Eingeführt vor R2006a