C 库 - iswctype() 函数

❮ C 标准库 - <wctype.h>


C wctype 库中的 iswctype() 函数用于检查给定的宽字符是否具有特定属性,例如字母、数字、字母数字、可打印字符、图形字符等。

语法

以下是 iswctype() 函数的 C 库语法 -

int iswctype( wint_t wc, wctype_t desc );

参数

此函数接受以下参数 -

  • wc - 待检查的宽字符类型为"wint_t"。

  • desc - 待检查的宽字符类型为"wint_t"的描述符,用于指定要检查 wc 的字符类。通过调用"wctype()"获取。

返回值

如果 wc(宽字符)具有"desc"指定的属性,则此函数返回非零值,否则返回零。

示例

以下是演示 iswctype() 用法的基本 C 程序。

#include <wchar.h>
#include <wctype.h>
#include <stdio.h>

int main() {
    // 待检查的宽字符
    wchar_t wc = L'A';
    // 字母字符描述符
    wctype_t desc = wctype("alpha");

    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.

示例 1

让我们创建另一个 C 语言示例,并使用 iswctype() 函数检查宽字符是否为字母数字字符。

#include <wchar.h>
#include <wctype.h>
#include <stdio.h>

int main() {
    // 要检查的宽字符串
    wchar_t str[] = L"Tutorialspoint 500081";
    // 字母数字字符的描述符
    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 是字母数字字符。
  不是字母数字字符。
5 是字母数字字符。
0 是字母数字字符。
0 是字母数字字符。
0 是字母数字字符。
8 是字母数字字符。
1 是字母数字字符。

示例 2

以下示例检查宽字符 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

❮ C 标准库 - <wctype.h>