Method #1: C Run-time Library - _stricmp() and _wcsicmp()
#include <string>
using namespace std;
string strUpperCase = "ABC";
string strLowerCase = "abc";
if(_stricmp(strUpperCase.c_str(), strLowerCase.c_str()) == 0)
// For wstring, use _wcsicmp() instead.
{
// Do something you need
}
Method #2: STL Algorithm - transform()
#include <cctype>
#include <string>
#include <algorithm>
using namespace std;
// I make a helper function to compare string
bool CompareCaseInsensitive(string strFirst, string strSecond)
{
// Convert both strings to upper case by transfrom() before compare.
transform(strFirst.begin(), strFirst.end(), strFirst.begin(), toupper);
transform(strSecond.begin(), strSecond.end(), strSecond.begin(), toupper);
if(strFirst == strSecond) return true; else return false;
}
string strUpperCase = "ABC";
string strLowerCase = "abc";
if(CompareCaseInsensitive(strUpperCase, strLowerCase))
{
// Do something you need
}
Reference in This Site:
How to convert STL string / wstring to upper / lower case?
Reference in MSDN:
_stricmp, _wcsicmp, _mbsicmp, _stricmp_l, _wcsicmp_l, _mbsicmp_l