logo

C-program for å sammenligne de to strengene

Strenger kan sammenlignes enten ved å bruke strengfunksjonen eller uten å bruke strengfunksjon. Først skal vi se på hvordan vi kan sammenligne strengene ved hjelp av strengfunksjon, dvs. strcmp(), som er definert i a streng.h header-fil.

Strengsammenligning ved å bruke strengfunksjon

Strengefunksjonen som er forhåndsdefinert i en streng.h header-filen er en strcmp() funksjon. Strcmp()-funksjonen vurderer to strenger som en parameter, og denne funksjonen returnerer en heltallsverdi der heltallsverdien kan være null , positivt eller negativ .

Syntaksen til strcmp()-funksjonen er gitt nedenfor:

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

I syntaksen ovenfor sendes to parametere som strenger, dvs. str1 og str2 , og returtypen er int betyr at strcmp() returnerer en heltallsverdi.

Strcmp()-funksjonen sammenligner karakteren til begge strengene. Hvis det første tegnet i begge strengene er det samme, vil denne sammenligningsprosessen fortsette til alle tegnene er sammenlignet eller pekeren peker på nulltegnet ''.

Mulige returverdier fra strcmp()-funksjonen

Returverdi Beskrivelse
0 Når begge strengene er like.
<0< td> Hvis ASCII-verdien til et tegn i den første strengen er mindre enn ASCII-verdien til et tegn i den andre strengen, vil funksjonen returnere negativ verdi.
>0 Hvis ASCII-verdien til et tegn i den første strengen er større enn ASCII-verdien til et tegn i den andre strengen, vil funksjonen returnere positiv verdi.

La oss forstå gjennom et eksempel.

 #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; } 

Analyse av programmet ovenfor

  • Vi har erklært to arrays av char type, dvs. str1 og str2. Vi tar brukerinnspillet som strenger.
  • Vi sammenligner strengene ved å bruke strcmp() funksjon, dvs. strcmp(str1,str2). Denne funksjonen vil sammenligne både strengene str1 og str2. Hvis funksjonen returnerer 0-verdi betyr at begge strengene er like, ellers er strengene ikke like.

Produksjon:

C-program for å sammenligne de to strengene
C-program for å sammenligne de to strengene

Strengsammenligning uten å bruke strcmp()-funksjonen

 #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; } 

Analyse av programmet ovenfor

  • I det ovenstående har vi deklarert to arrays av char type, og vi tar brukerinndataene som strenger.
  • Vi har definert en compare() funksjon som tar brukerinndatastrenger som en parameter, og sammenligner begge strengene. Hvis funksjonen returnerer 0, betyr det at begge strengene er like ellers er ikke begge strengene like .

Produksjon:

C-program for å sammenligne de to strengene

Strengsammenligning ved å bruke pekere

 #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; } 

Analyse av programmet ovenfor

  • Vi har laget to arrays av char type str1 og str2. Vi tar brukerinnspillet som strenger.
  • Vi har definert en stringcompare()-funksjon som tar to pekere av char-typen som en parameter. 'a'-pekeren holder adressen til str1 og 'b'-pekeren holder adressen til str2. Inne i funksjonen har vi laget en while-løkke som skal kjøres til pekeren a eller b ikke nås til et nulltegn.

Produksjon:

C-program for å sammenligne de to strengene