logo

Programma C per confrontare le due stringhe

Le stringhe possono essere confrontate utilizzando la funzione stringa o senza utilizzare la funzione stringa. Innanzitutto, vedremo come confrontare le stringhe con l'aiuto della funzione stringa, ovvero strcmp(), che è definito in a stringa.h file di intestazione.

Confronto tra stringhe utilizzando la funzione stringa

La funzione stringa predefinita in a stringa.h il file di intestazione è un file strcmp() funzione. La funzione strcmp() considera due stringhe come parametro e questa funzione restituisce un valore intero dove il valore intero può essere zero , positivo O negativo .

La sintassi della funzione strcmp() è riportata di seguito:

 int strcmp (const char* str1, const char* str2); 

Nella sintassi precedente, due parametri vengono passati come stringhe, ovvero str1 E str2 e il tipo restituito è int significa che strcmp() restituisce un valore intero.

La funzione strcmp() confronta il carattere di entrambe le stringhe. Se il primo carattere di entrambe le stringhe è lo stesso, questo processo di confronto continuerà finché tutti i caratteri non verranno confrontati o il puntatore non punterà al carattere nullo ''.

Possibili valori restituiti dalla funzione strcmp()

Valore di ritorno Descrizione
0 Quando entrambe le stringhe sono uguali.
<0< td> Se il valore ASCII di un carattere della prima stringa è inferiore al valore ASCII di un carattere della seconda stringa, la funzione restituirà un valore negativo.
>0 Se il valore ASCII di un carattere della prima stringa è maggiore del valore ASCII di un carattere della seconda stringa, la funzione restituirà un valore positivo.

Capiamolo attraverso un esempio.

 #include #include int main() { char str1[20]; // declaration of char array char str2[20]; // declaration of char array int value; // declaration of integer variable printf(&apos;Enter the first string : &apos;); scanf(&apos;%s&apos;,str1); printf(&apos;Enter the second string : &apos;); scanf(&apos;%s&apos;,str2); // comparing both the strings using strcmp() function value=strcmp(str1,str2); if(value==0) printf(&apos;strings are same&apos;); else printf(&apos;strings are not same&apos;); return 0; } 

Analisi del programma di cui sopra

  • Abbiamo dichiarato due array di tipo char, ovvero str1 e str2. Prendiamo l'input dell'utente come stringhe.
  • Confrontiamo le stringhe utilizzando il metodo strcmp() funzione, cioè strcmp(str1,str2). Questa funzione confronterà entrambe le stringhe str1 e str2. Se la funzione restituisce il valore 0 significa che entrambe le stringhe sono uguali, altrimenti le stringhe non sono uguali.

Produzione:

Programma C per confrontare le due stringhe
Programma C per confrontare le due stringhe

Confronto di stringhe senza utilizzare la funzione strcmp()

 #include int compare(char[],char[]); int main() { char str1[20]; // declaration of char array char str2[20]; // declaration of char array printf(&apos;Enter the first string : &apos;); scanf(&apos;%s&apos;,str1); printf(&apos;Enter the second string : &apos;); scanf(&apos;%s&apos;,str2); int c= compare(str1,str2); // calling compare() function if(c==0) printf(&apos;strings are same&apos;); else printf(&apos;strings are not same&apos;); return 0; } // Comparing both the strings. int compare(char a[],char b[]) { int flag=0,i=0; // integer variables declaration while(a[i]!=&apos;&apos; &amp;&amp;b[i]!=&apos;&apos;) // while loop { if(a[i]!=b[i]) { flag=1; break; } i++; } if(flag==0) return 0; else return 1; } 

Analisi del programma di cui sopra

  • In precedenza, abbiamo dichiarato due array di tipo char e prendiamo l'input dell'utente come stringhe.
  • Abbiamo definito una funzione compare() che prenderà le stringhe di input dell'utente come parametro e confronterà entrambe le stringhe. Se la funzione restituisce 0 significa che entrambe le stringhe sono uguali altrimenti entrambe le stringhe non sono uguali .

Produzione:

Programma C per confrontare le due stringhe

Confronto di stringhe tramite puntatori

 #include int stringcompare(char*,char*); int main() { char str1[20]; // declaration of char array char str2[20]; // declaration of char array printf(&apos;Enter the first string : &apos;); scanf(&apos;%s&apos;,str1); printf(&apos;
Enter the second string : &apos;); scanf(&apos;%s&apos;,str2); int compare=stringcompare(str1,str2); // calling stringcompare() function. if(compare==0) printf(&apos;strings are equal&apos;); else printf(&apos;strings are not equal&apos;); return 0; } // Comparing both the strings using pointers int stringcompare(char *a,char *b) { int flag=0; while(*a!=&apos;&apos; &amp;&amp; *b!=&apos;&apos;) // while loop { if(*a!=*b) { flag=1; } a++; b++; } if(flag==0) return 0; else return 1; } 

Analisi del programma di cui sopra

  • Abbiamo creato due array di tipo char str1 e str2. Prendiamo l'input dell'utente come stringhe.
  • Abbiamo definito una funzione stringcompare() che prenderà due puntatori di tipo char come parametro. Il puntatore 'a' contiene l'indirizzo di str1 e il puntatore 'b' contiene l'indirizzo di str2. All'interno della funzione, abbiamo creato un ciclo while che verrà eseguito finché il puntatore aob non raggiunge un carattere nullo.

Produzione:

Programma C per confrontare le due stringhe