devxlogo

Case-insensitive Comparison of Strings

Case-insensitive Comparison of Strings

Class std::string’s overloaded operator == performs a case-sensitive comparison. This means that the following strings are not identical when compared using ==:

   string s1 = "Jellylorum";  string s2 = "JellyLorum";

Unfortunately, there is no standard version of operator == that performs a case-insensitive comparison. There are several workarounds, most of which require familiarity with the underlying machinery of STL, the notion of char traits, function objects, binders, and so on. For many programmers who simply wish to perform case-insensitive comparisons without tampering with STL headers, these solutions are too complicated or unacceptable. The simplest way to get around this is by overloading the standard C function strcimp(). You overload it so that it takes strings rather than char *:

   #include <cstring> // needed for stricmp()  #include <string>   inline int stricmp (const std::string &s1,                                 const std::string &s2)  {   return stricmp (s1.c_str(), s2.c_str()); // C's stricmp  }

Note that this function, like its C counterpart, performs a lexicographical comparison. Therefore, the result can be

See also  Professionalism Starts in Your Inbox: Keys to Presenting Your Best Self in Email
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist