Main Content

strcmp

Confrontare stringhe

Descrizione

esempio

tf = strcmp(s1,s2) confronta s1 e s2 e restituisce 1 (true) se i due valori sono identici, oppure 0 (false) in caso contrario. Il testo è considerato identico se le dimensioni e il contenuto sono gli stessi. Il risultato di ritorno tf è del tipo di dati logical.

Gli argomenti di input possono essere qualsiasi combinazione di array di stringhe, vettori di caratteri e array di celle di vettori di caratteri.

Esempi

comprimi tutto

Confrontare due vettori di caratteri diversi.

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

strcmp restituisce 0 in quanto s1 e s2 non sono uguali.

Confrontare due vettori di caratteri uguali.

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

strcmp restituisce 1 in quanto s1 e s2 sono uguali.

Trovare la parola 'upon' in un array di celle di vettori di caratteri.

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

   0   1
   0   0

È presente una sola occorrenza di s1 nell'array s2 e si verifica nell'elemento s2(1,2).

Confrontare ciascun elemento di due array di celle di vettori di caratteri.

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

Sono presenti tre istanze di elementi uguali in s1 e s2. Si tratta di 'Time' agli indici (1,1), 'when' agli indici (1,3) e 'you''re' agli indici (2,1).

Confrontare gli array di stringhe utilizzando strcmp.

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

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

   0   0
   1   1

È possibile confrontare e ordinare gli array di stringhe con gli operatori relazionali, proprio come è possibile farlo con gli array numerici.

Utilizzare == per determinare quali elementi dei due array di stringhe sono uguali.

s1 == s2
ans = 2x2 logical array

   0   0
   1   1

Utilizzare < per determinare quali elementi di s1 sono inferiori agli elementi corrispondenti di s2 secondo l'ordine del dizionario ASCII.

s1 < s2
ans = 2x2 logical array

   1   1
   0   0

Argomenti di input

comprimi tutto

Testo di input, con ciascun input specificato come vettore di caratteri, array di caratteri, array di celle di vettori di caratteri o array di stringhe. L'ordine degli input non influisce sui risultati del confronto.

  • Se entrambi s1 e s2 sono array di stringhe o array di celle di vettori di caratteri, s1 e s2 devono avere la stessa dimensione, a meno che uno dei due non sia scalare.

  • Se entrambi s1 e s2 sono array di caratteri con più righe, s1 e s2 possono avere un numero diverso di righe.

  • Quando si confronta un array di celle di vettori di caratteri non scalare o un array di stringhe non scalare con un array di caratteri a più righe, l'array di celle o l'array di stringhe deve essere un vettore colonna con lo stesso numero di righe dell'array di caratteri.

Tipi di dati: char | cell | string

Argomenti di output

comprimi tutto

Risultato vero o falso, restituito come 1 o 0 del tipo di dati logical.

  • Se ciascun input è uno scalare di stringa, una cella scalare o un vettore di caratteri, tf è uno scalare.

  • Se almeno un input è un array di stringhe o un array di celle di vettori di caratteri, tf è un array con la stessa dimensione dell'array di input.

  • Se un input è un array di caratteri con più righe e l'altro input è una cella scalare o uno scalare di stringa, tf è un array nx1, dove n è il numero di righe nell'array di caratteri.

  • Se entrambi gli input sono array di caratteri, tf è uno scalare.

Suggerimenti

  • La funzione strcmp è concepita per il confronto di testi. Se è utilizzata su tipi di dati non supportati, strcmp restituisce sempre 0.

  • Per il confronto di testo senza distinzione tra maiuscole e minuscole, utilizzare strcmpi invece di strcmp.

  • Sebbene strcmp condivida un nome con una funzione C, non segue la convenzione del linguaggio C di restituire 0 quando gli input di testo corrispondono.

  • Con gli array di stringhe, è possibile utilizzare gli operatori relazionali (==, ~=, <, >, <=, >=) al posto di strcmp. È possibile confrontare e ordinare gli array di stringhe esattamente come avviene per gli array numerici.

Funzionalità estese

Cronologia versioni

Introduzione prima di R2006a