C++ program to compare two Strings using Operator Overloading - GeeksforGeeks

18 May, 2021
Pre-requisite: Operator Overloading in C++Given two strings, how to check if the two strings are equal or not, using Operator Overloading.
Examples: 
Input: ABCD, XYZ
Output: ABCD is not equal to XYZ
        ABCD is greater than XYZ

Input: Geeks, Geeks
Output: Geeks is equal to Geeks
Approach: Using binary operator overloading. 
Declare a class with a string variable and operator function ‘==’, ‘<=’ and ‘>=’ that accepts an instance of the class and compares it’s variable with the string variable of the current instance.
Create two instances of the class and initialize their class variables with the two input strings respectively.
Now, use the overloaded operator(==, <= and >=) function to compare the class variable of the two instances.
Below is the implementation of the above approach: 
C++
// C++ program to compare two Strings// using Operator Overloading #include <cstring>#include <iostream>#include <string.h> using namespace std; // Class to implement operator overloading// function for concatenating the stringsclass CompareString { public:    // Classes object of string    char str[25];     // Parameterized Constructor    CompareString(char str1[])    {        // Initialize the string to class object        strcpy(this->str, str1);    }     // Overloading '==' under a function    // which returns integer 1/true    // if left operand string    // and right operand string are equal.    //(else return 0/false)    int operator==(CompareString s2)    {        if (strcmp(str, s2.str) == 0)            return 1;        else            return 0;    }     // Overloading '<=' under a function    // which returns integer 1/true    // if left operand string is smaller than    // or equal to the right operand string.    // (else return 0/false)    int operator<=(CompareString s3)    {        if (strlen(str) <= strlen(s3.str))            return 1;        else            return 0;    }     // Overloading '>=' under a function    // which returns integer 1/true    // if left operand string is larger than    // or equal to the right operand string.    //(else return 0/false)    int operator>=(CompareString s3)    {        if (strlen(str) >= strlen(s3.str))            return 1;        else            return 0;    }}; void compare(CompareString s1, CompareString s2){     if (s1 == s2)        cout << s1.str << " is equal to "             << s2.str << endl;    else {        cout << s1.str << " is not equal to "             << s2.str << endl;        if (s1 >= s2)            cout << s1.str << " is greater than "                 << s2.str << endl;        else            cout << s2.str << " is greater than "                 << s1.str << endl;    }} // Testcase1void testcase1(){    // Declaring two strings    char str1[] = "Geeks";    char str2[] = "ForGeeks";     // Declaring and initializing the class    // with above two strings    CompareString s1(str1);    CompareString s2(str2);     cout << "Comparing \"" << s1.str << "\" and \""         << s2.str << "\"" << endl;     compare(s1, s2);} // Testcase2void testcase2(){    // Declaring two strings    char str1[] = "Geeks";    char str2[] = "Geeks";     // Declaring and initializing the class    // with above two strings    CompareString s1(str1);    CompareString s2(str2);     cout << "\n\nComparing \"" << s1.str << "\" and \""         << s2.str << "\"" << endl;     compare(s1, s2);} // Driver codeint main(){    testcase1();    testcase2();     return 0;}
Comparing "Geeks" and "ForGeeks"
Geeks is not equal to ForGeeks
ForGeeks is greater than Geeks


Comparing "Geeks" and "Geeks"
Geeks is equal to Geeks
 
saurabh1990aror
cpp-operator-overloading
cpp-overloading
Operator Overloading
C++
Strings
Strings
CPP
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Inheritance in C++
Map in C++ Standard Template Library (STL)
C++ Classes and Objects
Bitwise Operators in C/C++
Socket Programming in C/C++
Reverse a string in Java
Write a program to reverse an array or string
Longest Common Subsequence | DP-4
Write a program to print all permutations of a given string
C++ Data Types