strcmp() function is used to compare two string to each other and returns an integer value.
The strcmp() function is defined in the header file string.h
.
It takes two arguments, the name of the first string and the second string. These two strings are compared with each other and the returned integer value depends on following condition.
- returns 0: if both the string are equal.
- returns negative integer: if string1 < string2
- returns positive integer: if string1 > string2
And is written as follows:
strcmp(first_string, second_string);
C Program for strcmp() function
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #include <stdio.h> #include <string.h> int main() { char str1[] = "simple2code"; char str2[] = "simple2code.com"; char str3[] = "simple2code"; int return_result; //comaprision between str1 and str2 //with if..else statement if(strcmp(str1, str2) == 0) printf("Strings (str1,str2) are equal."); else printf("Strings (str1,str2) are not equal."); //comaprision between str1 and str2 //by displaying integer value return_result = strcmp(str1, str3); printf("\nRetuned Integer value fron str2 and str3 cmp: %d", return_result); return 0; } |
Output:
Strings (str1,str2) are not equal.
Retuned Integer value fron str2 and str3 cmp: 0
The program shows the comparison in two different ways, one with help of if..else statement in C and another recognized by the integer value returned by strcmp() function.
C String – strncmp function
It is the same as the above strcmp() function but here the difference is that it takes the third argument for n number of characters to be compared from both the strings.
It is written as follows:
strncmp(first_string, second_string, n);
C Program for strncmp() function
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #include <stdio.h> #include <string.h> int main() { char str1[] = "simple2codeWebsite"; char str2[] = "simple2code.com"; //comparing only 11 characters from both the strings if(strncmp (str1, str2, 11) == 0) printf("Strings (str1,str2) are equal."); else printf("Strings (str1,str2) are not equal."); return 0; } |
Output:
Strings (str1,str2) are equal.
As you can see, the third argument passed is 11 that means the strncmp() functions take 11 characters from both the strings and compare them to each other and check if they are equal or not.
In this case, the result is equal even though both the strings (simple2codeWebsite, simple2code.com) are different but their first 11 characters are equal. Hence the result is equal.