logo

C-program för att jämföra de två strängarna

Strängar kan jämföras antingen genom att använda strängfunktionen eller utan att använda strängfunktionen. Först ska vi titta på hur vi kan jämföra strängarna med hjälp av strängfunktion, dvs. strcmp(), som definieras i a sträng.h header-fil.

Strängjämförelse med hjälp av strängfunktion

Strängfunktionen som är fördefinierad i en sträng.h header-filen är en strcmp() fungera. Strcmp()-funktionen betraktar två strängar som en parameter, och den här funktionen returnerar ett heltalsvärde där heltalsvärdet kan vara noll , positiv eller negativ .

Syntaxen för strcmp()-funktionen ges nedan:

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

I ovanstående syntax skickas två parametrar som strängar, dvs. str1 och str2 , och returtypen är int betyder att strcmp() returnerar ett heltalsvärde.

Strcmp()-funktionen jämför karaktären hos båda strängarna. Om det första tecknet i båda strängarna är samma, kommer denna jämförelseprocess att fortsätta tills alla tecken jämförs eller pekaren pekar på nolltecknet ''.

Möjliga returvärden från strcmp()-funktionen

Returvärde Beskrivning
0 När båda strängarna är lika.
<0< td> Om ASCII-värdet för ett tecken i den första strängen är mindre än ASCII-värdet för ett tecken i den andra strängen, kommer funktionen att returnera negativt värde.
>0 Om ASCII-värdet för ett tecken i den första strängen är större än ASCII-värdet för ett tecken i den andra strängen, kommer funktionen att returnera ett positivt värde.

Låt oss förstå genom ett exempel.

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

Analys av ovanstående program

  • Vi har deklarerat två arrayer av char-typ, dvs str1 och str2. Vi tar användarinmatningen som strängar.
  • Vi jämför strängarna genom att använda strcmp() funktion, dvs. strcmp(str1,str2). Denna funktion kommer att jämföra både strängarna str1 och str2. Om funktionen returnerar 0-värdet betyder det att båda strängarna är lika, annars är strängarna inte lika.

Produktion:

C-program för att jämföra de två strängarna
C-program för att jämföra de två strängarna

Strängjämförelse utan att använda strcmp()-funktionen

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

Analys av ovanstående program

  • I det ovanstående har vi deklarerat två arrayer av char-typ, och vi tar användarinmatningen som strängar.
  • Vi har definierat en compare() funktion som tar användarinmatningssträngar som en parameter och jämför båda strängarna. Om funktionen returnerar 0, vilket betyder att båda strängarna är lika, annars är båda strängarna inte lika .

Produktion:

C-program för att jämföra de två strängarna

Strängjämförelse med hjälp av pekare

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

Analys av ovanstående program

  • Vi har skapat två arrayer av char typ str1 och str2. Vi tar användarinmatningen som strängar.
  • Vi har definierat en stringcompare() funktion som tar två pekare av char-typ som en parameter. 'a'-pekaren håller adressen till str1 och 'b'-pekaren håller adressen till str2. Inuti funktionen har vi skapat en while-loop som kommer att köras tills pekaren a eller b inte nås till ett nolltecken.

Produktion:

C-program för att jämföra de två strängarna