非常教程

C参考手册

字符串 | Strings

iswctype

在头文件<wctype.h>中定义

int iswctype(wint_t wc,wctype_t desc);

(自C95以来)

使用由desc标识的当前C语言环境的LC_CTYPE类别对宽字符wc进行分类。

参数

wc

-

宽字符的分类

desc

-

从调用wctype获取的LC_CTYPE类别

返回值

如果字符wc在当前C语言环境的LC_CTYPE构面中具有由desc标识的属性,则为非零,否则为零。

#include <locale.h>
#include <wchar.h>
#include <wctype.h>
#include <stdio.h>
const char* classify(wchar_t wc, const char* cat)
{
    return iswctype(wc, wctype(cat)) ? "true" : "false";
}
int main(void)
{
    setlocale(LC_ALL, "ja_JP.UTF-8");
    puts("The character \u6c34 is...");
    const char* cats[] = {"digit", "alpha", "space", "cntrl", "jkanji"};
    for(int n = 0; n < 5; ++n)
        printf("%s? %s\n", cats[n], classify(L'\u6c34', cats[n]));
}

输出:

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

参考

  • C11标准(ISO / IEC 9899:2011):
    • 7.30.2.2.1 iswctype函数(p:451-452)
  • C99标准(ISO / IEC 9899:1999):
    • 7.25.2.2.1 iswctype函数(p:397-398)

扩展内容

wctype(C95)

在当前的C语言环境(函数)中查找字符分类类别

C

C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。