strcmp() in C/C++


The function strcmp() is a built-in library function and it is declared in “string.h” header file. This function is used to compare the string arguments. It compares strings lexicographically which means it compares both the strings character by character. It starts comparing the very first character of strings until the characters of both strings are equal or NULL character is found.

If the first character of both strings are equal, it checks second character and so on. This process will be continued until NULL character is found or both characters are unequal.

Here is the syntax of strcmp() in C language,

int strcmp(const char *leftStr, const char *rightStr );

This function returns the following three different values based on the comparison.

1.Zero(0) − It returns zero if both strings are identical. All characters are same in both strings.

Here is an example of strcmp() when both strings are equal in C language,

Example

 Live Demo

#include<stdio.h>
#include<string.h>
int main() {
   char str1[] = "Tom!";
   char str2[] = "Tom!";
   int result = strcmp(str1, str2);
   if (result==0)
   printf("Strings are equal");
   else
   printf("Strings are unequal");
   printf("\nValue returned by strcmp() is: %d" , result);
   return 0;
}

Output

Strings are equal
Value returned by strcmp() is: 0

2.Greater than zero(>0) − It returns a value greater than zero when the matching character of left string has greater ASCII value than the character of the right string.

Here is an example of strcmp() when it returns greater than zero value in C language,

Example

 Live Demo

#include<stdio.h>
#include<string.h>
int main() {
   char str1[] = "hello World!";
   char str2[] = "Hello World!";
   int result = strcmp(str1, str2);
   if (result==0)
   printf("Strings are equal");
   else
   printf("Strings are unequal");
   printf("\nValue returned by strcmp() is: %d" , result);
   return 0;
}

Output

Strings are unequal
Value returned by strcmp() is: 32

3.Less than zero(<0) − It returns a value less than zero when the matching character of left string has lesser ASCII value than the character of the right string.

Here is an example of strcmp() in C language

Example

 Live Demo

#include<stdio.h>
#include<string.h>
int main() {
   char leftStr[] = "Hello World!";
   char rightStr[] = "hello World!";
   int result = strcmp(leftStr, rightStr);
   if (result==0)
   printf("Strings are equal");
   else
   printf("Strings are unequal");
   printf("\nValue returned by strcmp() is: %d" , result);
   return 0;
}

Output

Strings are unequal
Value returned by strcmp() is: -32

Samual Sam
Samual Sam

Learning faster. Every day.

Updated on: 24-Jun-2020

26K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements