C++ <cstring> - strcmp() Function
The C++ <cstring> 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 <iostream> #include <cstring> using namespace std; 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) cout<<"str1 and str2 are not equal.\n"; else cout<<"str1 and str2 are equal.\n"; cout<<"Value returned by the function: "<<retval<<"\n"; 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 <iostream> #include <cstring> using namespace std; 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) cout<<"str1 and str2 are not equal.\n"; else cout<<"str1 and str2 are equal.\n"; cout<<"Value returned by the function: "<<retval<<"\n"; 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 <iostream> #include <cstring> using namespace std; 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) cout<<"str1 and str2 are not equal.\n"; else cout<<"str1 and str2 are equal.\n"; cout<<"Value returned by the function: "<<retval<<"\n"; return 0; }
The output of the above code will be:
str1 and str2 are not equal. Value returned by the function: 7
❮ C++ <cstring> Library