📜  C C++中的iswctype()函数(1)

📅  最后修改于: 2023-12-03 15:29:41.517000             🧑  作者: Mango

C/C++中的iswctype()函数

iswctype()函数是C/C++标准库中的一个宽字符类型判断函数,主要用于判断一个宽字符是否属于某个类型。

函数原型
#include <wctype.h>
int iswctype(wint_t wc, wctype_t desc);

其中,wint_t是宽字符类型,wctype_t是一个宽字符类型描述符。

函数功能

iswctype()函数会检查宽字符类型wc是否符合描述符desc的类型,如果符合,则返回一个非零值,否则返回零。desc可以是如下值之一:

  • _ALPHA 字母字符(a-z, A-Z)
  • _UPPER 大写字母字符(A-Z)
  • _LOWER 小写字母字符(a-z)
  • _DIGIT 十进制数字字符(0-9)
  • _XDIGIT 十六进制数字字符(0-9, a-f, A-F)
  • _SPACE 空格字符(空格、制表符、换行符等)
  • _BLANK 空格字符以及水平制表符
  • _PRINT 可打印的字符
  • _PUNCT 标点符号字符
  • _GRAPH 图形字符(非空白、非控制字符)
  • _CNTRL 控制字符

除此之外,我们也可以自定义宽字符类型描述符。

示例代码
#include <iostream>
#include <wctype.h>
#include <locale.h>

int main() {
    setlocale(LC_ALL,"");   // 设置本地化环境
    wchar_t ch = L'好';   // 宽字符
    if (iswctype(ch, _ALPHA)) {
        std::wcout << "是字母字符" << std::endl;
    } else {
        std::wcout << "不是字母字符" << std::endl;
    }
    return 0;
}

上面的代码会输出“是字母字符”。由于“好”字在中文中也可以作为一个字母使用,故iswctype()函数检测到它是字母字符。