C 库 - wctype() 函数
C wctype 库中的 wctype() 函数用于获取宽字符类型的 desc(描述符)。此描述符可与"iswctype"函数一起使用,以检查给定的宽字符是否属于特定的字符类。
此函数可以保存以下"str"值 -
- alnum - 标识 iswalnum 使用的类别
- alpha - 标识 iswalpha 使用的类别
- blank - 标识 iswblank (C99) 使用的类别
- cntrl - 标识 iswcntrl 使用的类别
- digit - 标识 iswdigit 使用的类别
- graph - 标识 iswgraph 使用的类别
- lower - 标识iswlower
- print − 标识 iswprint 使用的类别
- space − 标识 iswspace 使用的类别
- upper − 标识 iswupper 使用的类别
- xdigit − 标识 iswxdigit 使用的类别
语法
以下是 wctype() 函数的 C 库语法 −
wctype_t wctype( const char* str );
参数
此函数接受一个参数 -
-
str - 这是一个指向"const char*"类型字符串的指针,该字符串指定要获取描述符的字符类的名称。
返回值
此函数返回一个 wctype_t 类型的值,该值是指定字符类的描述符。
示例 1
以下是一个简单的 C 程序,用于演示如何使用 wctype() 获取描述符。
#include <wchar.h> #include <wctype.h> #include <stdio.h> int main() { // 待检查的宽字符 wchar_t wc = L'A'; // 字母字符描述符 wctype_t desc = wctype("alpha"); // 使用 iswctype 检查字符是否具有 desc 描述的属性 if (iswctype(wc, desc)) { wprintf(L"%lc is an alphabetic character. ", wc); } else { wprintf(L"%lc is not an alphabetic character. ", wc); } return 0; }
输出
以下是输出 -
A is an alphabetic character.
示例 2
让我们创建另一个 C 语言示例,并使用 wctype() 创建一个字母数字字符的 desc(描述符)。
#include <wchar.h> #include <wctype.h> #include <stdio.h> int main() { // 待检查的宽字符串 wchar_t str[] = L"tutorialspoint12"; // 字母数字字符的描述符 wctype_t desc = wctype("alnum"); // 循环遍历字符串中的每个字符 for (size_t i = 0; str[i] != L'\0'; ++i) { // 检查字符是否为字母数字 if (iswctype(str[i], desc)) { wprintf(L"%lc 是字母数字字符。 ", str[i]); } else { wprintf(L"%lc 不是字母数字字符。 ", str[i]); } } return 0; }
输出
以下是输出 -
t 是字母数字字符。 u 是字母数字字符。 t 是字母数字字符。 o 是字母数字字符。 r 是字母数字字符。 i 是字母数字字符。 a 是字母数字字符。 l 是字母数字字符。 s 是字母数字字符。 p 是字母数字字符。 o 是字母数字字符。 i 是字母数字字符。 n 是字母数字字符。 t 是字母数字字符。 1 是字母数字字符。 2 是字母数字字符。
示例 3
以下示例为标点符号创建 desc(描述符)。然后我们检查 wc 是否为标点符号。
#include <wchar.h> #include <wctype.h> #include <stdio.h> int main() { wchar_t wc = L'#'; // 检查字符是否为标点符号 if (iswctype(wc, wctype("punct"))) wprintf(L"%lc is a punctuation ", wc); else wprintf(L"%lc is not a punctuation ", wc); return 0; }
输出
以下是输出 -
# is a punctuation