<wctype.h> -- 函数
阅读:0       作者:严长生

iswxdigit() 判断一个宽字符是否是十六进制数字

int iswxdigit (wint_t wc);

iswxdigit() 函数用来检测一个宽字符是否是十六进制数字。

十六进制数字包括:0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F

iswxdigit() 是 isxdigit()(位于<ctype.h>中)的宽字符版本:如果参数 wc 能够被 wctob() 转换为单个字节的形式,并且转换后的字符使用 isxdigit() 检测返回“真”(非零值),那么 iswxdigit() 也一定会将 wc 判定为十六进制数字。

参数

  • wc

    要检测的宽字符。它可以是一个有效的宽字符(被转换为 wint_t 类型),也可以是 WEOF(表示无效的宽字符)。

返回值

返回值为非零(真)表示wc是十六进制数字,返回值为零(假)表示wc不是十六进制数字。

实例

#include <stdio.h>
#include <wchar.h>
#include <wctype.h>
int main ()
{
    wchar_t str[] = L"E6fd";
    long int number;
    if (iswxdigit(str[0]))
    {
        number = wcstol (str,NULL,16);
        wprintf (L"The hexadecimal number %lx is %ld.\n",number,number);
    }
    return 0;
}
运行结果:
The hexadecimal number e6fd is 59133.

本例中,isxwdigit() 用来检测 str 字符串中第 0 个宽字符是否是有效的十六进制数字,如果是,那么使用 wcstol() 函数将 str 转换为十进制数字。