C <string.h> - strcmp() Function
The C <string.h> strcmp() function is used to compare two null-terminated byte strings lexicographically. The function starts comparing the first pair of characters of each string and continues comparing until the pair of characters are different or until a terminating null-character is reached.
Syntax
int strcmp ( const char * lhs, const char * rhs );
Parameters
lhs |
Specify pointer to the first null-terminated byte string to compare. |
rhs |
Specify pointer to the second null-terminated byte string to compare. |
Return Value
Based on the value of lhs and rhs, the function returns the following:
- Negative value if lhs appears before rhs in lexicographical order.
- Zero if lhs and rhs compare equal.
- Positive value if lhs appears after rhs in lexicographical order.
Example: Value returned by function = 0
The example below shows the usage of strcmp() function.
#include <stdio.h> #include <string.h> int main (){ char str1[20] = "Hello"; char str2[20] = "Hello"; //comparing str1 and str2 int retval = strcmp(str1, str2); //displaying the result if(retval != 0) printf("str1 and str2 are not equal.\n"); else printf("str1 and str2 are equal.\n"); printf("Value returned by the function: %i\n", retval); return 0; }
The output of the above code will be:
str1 and str2 are equal. Value returned by the function: 0
Example: Value returned by function < 0
Lets consider this example where the returned value is less than zero.
#include <stdio.h> #include <string.h> int main (){ char str1[20] = "Hello"; char str2[20] = "World"; //comparing str1 and str2 int retval = strcmp(str1, str2); //displaying the result if(retval != 0) printf("str1 and str2 are not equal.\n"); else printf("str1 and str2 are equal.\n"); printf("Value returned by the function: %i\n", retval); return 0; }
The output of the above code will be:
str1 and str2 are not equal. Value returned by the function: -15
Example: Value returned by function > 0
Lets consider another example where the returned value is greater than zero.
#include <stdio.h> #include <string.h> int main (){ char str1[20] = "Hello"; char str2[20] = "Apple"; //comparing str1 and str2 int retval = strcmp(str1, str2); //displaying the result if(retval != 0) printf("str1 and str2 are not equal.\n"); else printf("str1 and str2 are equal.\n"); printf("Value returned by the function: %i\n", retval); return 0; }
The output of the above code will be:
str1 and str2 are not equal. Value returned by the function: 7
❮ C <string.h> Library