命名空间
变体
操作

std::iswctype

来自 cppreference.com
< cpp‎ | string‎ | wide
定义在头文件 <cwctype>
int iswctype( std::wint_t wc, std::wctype_t desc );

使用当前 C 本地的 LC_CTYPE 类别(由 desc 标识)对宽字符 wc 进行分类。

如果 wc 的值既不能表示为 wchar_t,也不等于宏 WEOF 的值,则行为未定义。

内容

[编辑] 参数

wc - 要分类的宽字符
desc - 从调用 std::wctype 获取的 LC_CTYPE 类别

[编辑] 返回值

如果字符 wc 在当前 C 本地的 LC_CTYPE 面中具有由 desc 标识的属性,则返回非零值;否则返回零。

[编辑] 示例

#include <clocale>
#include <cwctype>
#include <iostream>
 
bool classify(wchar_t wc, const std::string& cat)
{
    return std::iswctype(wc, 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';
}

输出

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

[编辑] 另请参阅

在当前 C 本地中查找字符分类类别
(函数) [编辑]
C 文档 用于 iswctype