C++ Tutorial/Data Types/wide character

Материал из C\C++ эксперт
Перейти к: навигация, поиск

Compare wide character string ignoring the case

#include <string>
#include <iostream>
#include <algorithm>
#include <cctype>
#include <cwctype>
using namespace std;

inline bool caseInsCharCompareW(wchar_t a, wchar_t b) {
   return(towupper(a) == towupper(b));
}
bool caseInsCompare(const wstring& s1, const wstring& s2) {
   return((s1.size( ) == s2.size( )) &&
          equal(s1.begin( ), s1.end( ), s2.begin( ), caseInsCharCompareW));
}

int main( ) {
   wstring ws1 = L"The END";
   wstring ws2 = L"the end";
   if (caseInsCompare(ws1, ws2))
      cout << "Equal!\n";
}
Equal!

wctype

#include <iostream>
#include <cwctype>
using namespace std;
int main()
{
  wctype_t x;
  x = wctype("space");
  if(iswctype(L" ", x))
    cout << "Is a space.\n";
  return 0;
}