std::iswctype

From Cppreference

Jump to: navigation, search
Defined in header <cwctype>

int iswctype( std::wint_t ch, std::wctype_t desc );

Classifies the wide character wc using the current C locale's LC_CTYPE category identified by desc.

Contents

[edit] Parameters

ch - the wide character to classify
desc - the LC_CTYPE category, obtained from a call to std::wctype

[edit] Return value

Non-zero if the character ch has the property identified by desc in LC_CTYPE facet of the current C locale.

[edit] Example

#include <clocale>
#include <cwctype>
#include <iostream>
bool classify(wchar_t ch, const std::string& cat)
{
    return std::iswctype(ch, std::wctype(cat.c_str()));
}
int main()
{
    std::setlocale(LC_ALL, "ja_JP.UTF-8");
    std::cout << "The character \u6c34 is...\n";
    for(std::string s : {"digit", "alpha", "space", "cntrl", "jkanji"})
        std::cout << s << "? " << std::boolalpha << classify(L'\u6c34', s) << '\n';
}

Output:

The character 水 is...
digit? false
alpha? true
space? false
cntrl? false
jkanji? true

[edit] See also

wctype
looks up a character classification category in the current C locale
(function)