Sunday, March 2, 2025
Google search engine
HomeData Modelling & AICompare Strings for equality or lexicographical order in different programming Languages

Compare Strings for equality or lexicographical order in different programming Languages

Given two strings string1 and string2, the task is to check if these two strings are equal or not. 

Examples:

Input: string1 = “neveropen”, string2 = “neveropen” 
Output: Yes 

Input: string1 = “Geeks for Geeks”, string2 = “Geeks for Geeks” 
Output: Yes 

Input: string1 = “neveropen”, string2 = “Geeks” 
Output: No 

Input: string1 = “Geeks for Geeks”, string2 = “Geeks for neveropen” 
Output: No

Approach 1: Using Relational Operator

Programming Language

How to check for String Equality

C

strcmp()

C++

==

Java

equals()

Python

is

C# ==
JavaScript ===

C++




// C++ code for the above approach:
#include <bits/stdc++.h>
using namespace std;
 
// Drivers code
int main()
{
 
    // First string.
    string s1 = "neveropen";
 
    // Second string.
    string s2 = "Geeks for neveropen";
 
    // Check condition.
    if (s1 == s2) {
        cout << "Strings Are Equal" << endl;
    }
    else {
        cout << "Strings Are Not Equal" << endl;
    }
    return 0;
}


Java




import java.util.*;
 
public class Main {
    public static void main(String[] args)
    {
        // first string
        String s1 = "neveropen";
        // second string
        String s2 = "Geeks for neveropen";
        // check condition
        if (s1.equals(s2)) {
            System.out.println("Strings Are Equal");
        }
        else {
            System.out.println("Strings Are Not Equal");
        }
    }
}


Python




# Python3 program to check 2 strings are identical or not
 
if __name__ == "__main__":
 
    # first string.
string1 = "neveropen"
# second string.
string2 = "Geeks for neveropen"
 
# check condition
if (string1 is string2):
    print("Strings Are Equal")
else:
    print("Strings Are Not Equal")


C#




using System;
 
class GFG {
    static void Main(string[] args)
    {
        // first string
        string s1 = "neveropen";
        // second string
        string s2 = "Geeks for neveropen";
        // check condition
        if (s1 == s2) {
            Console.WriteLine("Strings Are Equal");
        }
        else {
            Console.WriteLine("Strings Are Not Equal");
        }
    }
}


Javascript




// js code implementation
 
const s1 = "neveropen";
const s2 = "Geeks for neveropen";
 
if (s1 === s2) {
    console.log("Strings Are Equal");
} else {
    console.log("Strings Are Not Equal");
}


Output

Strings Are Not Equal










Approach 2: Using Comparator

Define a function to compare values with the following conditions:

  • Given strings are equal if:
    • both the strings are equal lexicographically, i.e.(string1 == string2) it returns 0.
  • Given strings are not equal if :
    • (string1 > string2) it returns a positive value.
    • (string1 < string2) it returns a negative value.

The value is calculated as (int)str1.charAt(i) – (int)str2.charAt(i)

Below is the implementation for the above approach:

C++




// C++ program to Compare two strings
// lexicographically
#include <bits/stdc++.h>
using namespace std;
 
// This function compares two strings
// lexicographically without using
// library functions
int stringCompare(const string& str1, const string& str2)
{
    int l1 = str1.length();
    int l2 = str2.length();
    int lmin = min(l1, l2);
 
    for (int i = 0; i < lmin; i++) {
        int str1_ch = (int)(str1[i]);
        int str2_ch = (int)(str2[i]);
 
        if (str1_ch != str2_ch) {
            return str1_ch - str2_ch;
        }
    }
 
    // Edge case for strings like
    // String1 = "Geeks" and
    // String2 = "Geeksforneveropen"
    if (l1 != l2) {
        return l1 - l2;
    }
 
    // If none of the above conditions
    // is true, it implies both the
    // strings are equal
    else {
        return 0;
    }
}
 
void isEqual(const string& str1, const string& str2)
{
    int compareStrings = stringCompare(str1, str2);
    bool result = (compareStrings == 0) ? true : false;
 
    // Comparing for String 1 < String 2
    cout << "Comparing " << str1 << " and " << str2 << ": ";
    if (result)
        cout << "Equal" << endl;
    else
        cout << "Not equal" << endl;
}
 
int main()
{
    string string1 = "Geeksforneveropen";
    string string2 = "Practice";
    string string3 = "Geeks";
    string string4 = "Geeks";
 
    // Comparing for String 1 < String 2
    isEqual(string1, string2);
 
    // Comparing for String 3 = String 4
    isEqual(string3, string4);
 
    // Comparing for String 1 > String 4
    isEqual(string1, string4);
 
    return 0;
}
// This code is contributed by Prasad264


Java




// Java program to Compare two strings
// lexicographically
public class GFG {
 
    // This method compares two strings
    // lexicographically without using
    // library functions
    public static int stringCompare(String str1,
                                    String str2)
    {
 
        int l1 = str1.length();
        int l2 = str2.length();
        int lmin = Math.min(l1, l2);
 
        for (int i = 0; i < lmin; i++) {
            int str1_ch = (int)str1.charAt(i);
            int str2_ch = (int)str2.charAt(i);
 
            if (str1_ch != str2_ch) {
                return str1_ch - str2_ch;
            }
        }
 
        // Edge case for strings like
        // String1 = "Geeks" and
        // String2 = "Geeksforneveropen"
        if (l1 != l2) {
            return l1 - l2;
        }
 
        // If none of the above conditions
        // is true, it implies both the
        // strings are equal
        else {
            return 0;
        }
    }
 
    public static void isEqual(String str1, String str2)
    {
        int compareStrings = stringCompare(str1, str2);
        Boolean result
            = (compareStrings == 0) ? true : false;
 
        // Comparing for String 1 < String 2
        System.out.print("Comparing " + str1 + " and "
                         + str2 + ": ");
        if (result)
            System.out.println("Equal");
        else
            System.out.println("Not equal");
    }
 
    // Driver function to test the above program
    public static void main(String args[])
    {
        String string1 = new String("Geeksforneveropen");
        String string2 = new String("Practice");
        String string3 = new String("Geeks");
        String string4 = new String("Geeks");
 
        // Comparing for String 1 < String 2
        isEqual(string1, string2);
 
        // Comparing for String 3 = String 4
        isEqual(string3, string4);
 
        // Comparing for String 1 > String 4
        isEqual(string1, string4);
    }
}


Python3




# This function compares two strings
# lexicographically without using
# library functions
def stringCompare(str1, str2):
    l1 = len(str1)
    l2 = len(str2)
    lmin = min(l1, l2)
 
    for i in range(lmin):
        str1_ch = ord(str1[i])
        str2_ch = ord(str2[i])
 
        if str1_ch != str2_ch:
            return str1_ch - str2_ch
 
    # Edge case for strings like
    # String1 = "Geeks" and
    # String2 = "Geeksforneveropen"
    if l1 != l2:
        return l1 - l2
 
    # If none of the above conditions
    # is true, it implies both the
    # strings are equal
    else:
        return 0
 
def is_equal(str1, str2):
    compare_strings = stringCompare(str1, str2)
    result = compare_strings == 0
 
    # Comparing for String 1 < String 2
    print(f"Comparing {str1} and {str2}: ", end="")
    if result:
        print("Equal")
    else:
        print("Not equal")
 
string1 = "Geeksforneveropen"
string2 = "Practice"
string3 = "Geeks"
string4 = "Geeks"
 
# Comparing for String 1 < String 2
is_equal(string1, string2)
 
# Comparing for String 3 = String 4
is_equal(string3, string4)
 
# Comparing for String 1 > String 4
is_equal(string1, string4)


C#




// C# Code
 
using System;
 
public class GFG
{
    // This method compares two strings
    // lexicographically without using
    // library functions
    public static int StringCompare(string str1, string str2)
    {
        int l1 = str1.Length;
        int l2 = str2.Length;
        int lmin = Math.Min(l1, l2);
 
        for (int i = 0; i < lmin; i++)
        {
            int str1_ch = (int)str1[i];
            int str2_ch = (int)str2[i];
 
            if (str1_ch != str2_ch)
            {
                return str1_ch - str2_ch;
            }
        }
 
        // Edge case for strings like
        // String1 = "Geeks" and
        // String2 = "Geeksforneveropen"
        if (l1 != l2)
        {
            return l1 - l2;
        }
 
        // If none of the above conditions
        // is true, it implies both the
        // strings are equal
        else
        {
            return 0;
        }
    }
 
    public static void IsEqual(string str1, string str2)
    {
        int compareStrings = StringCompare(str1, str2);
        bool result = (compareStrings == 0) ? true : false;
 
        // Comparing for String 1 < String 2
        Console.Write("Comparing " + str1 + " and " + str2 + ": ");
        if (result)
            Console.WriteLine("Equal");
        else
            Console.WriteLine("Not equal");
    }
 
    // Driver function to test the above program
    public static void Main(string[] args)
    {
        string string1 = "Geeksforneveropen";
        string string2 = "Practice";
        string string3 = "Geeks";
        string string4 = "Geeks";
 
        // Comparing for String 1 < String 2
        IsEqual(string1, string2);
 
        // Comparing for String 3 = String 4
        IsEqual(string3, string4);
 
        // Comparing for String 1 > String 4
        IsEqual(string1, string4);
    }
}


Javascript




function stringCompare(str1, str2) {
    const l1 = str1.length;
    const l2 = str2.length;
    const lmin = Math.min(l1, l2);
 
    for (let i = 0; i < lmin; i++) {
        const str1_ch = str1.charCodeAt(i);
        const str2_ch = str2.charCodeAt(i);
 
        if (str1_ch !== str2_ch) {
            return str1_ch - str2_ch;
        }
    }
 
    // Edge case for strings with different lengths
    if (l1 !== l2) {
        return l1 - l2;
    }
 
    // If none of the above conditions is true, it implies both strings are equal
    return 0;
}
 
function isEqual(str1, str2) {
    const compareStrings = stringCompare(str1, str2);
    const result = compareStrings === 0;
 
    console.log(`Comparing ${str1} and ${str2}: ${result ? 'Equal' : 'Not equal'}`);
}
 
const string1 = "Geeksforneveropen";
const string2 = "Practice";
const string3 = "Geeks";
const string4 = "Geeks";
 
// Comparing for String 1 < String 2
isEqual(string1, string2);
 
// Comparing for String 3 = String 4
isEqual(string3, string4);
 
// Comparing for String 1 > String 4
isEqual(string1, string4);


Output

Comparing Geeksforneveropen and Practice: Not equal
Comparing Geeks and Geeks: Equal
Comparing Geeksforneveropen and Geeks: Not equal










Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

Commit to GfG’s Three-90 Challenge! Purchase a course, complete 90% in 90 days, and save 90% cost click here to explore.

Last Updated :
09 Nov, 2023
Like Article
Save Article


Previous

<!–

8 Min Read | Java

–>


Next


<!–

8 Min Read | Java

–>

Share your thoughts in the comments

RELATED ARTICLES

Most Popular

Recent Comments