int iswdigit (wint_t wc);
iswdigit() 函数用来检测一个宽字符是否是十进制数字。
十进制数字包括:0 1 2 3 4 5 6 7 8 9
iswdigit() 是 isdigit()(位于<ctype.h>中)的宽字符版本:如果参数 wc 能够被 wctob() 转换为单个字节的形式,并且转换后的字符使用 isdigit() 检测返回“真”(非零值),那么 iswdigit() 也一定会将 wc 判定为十进制数字。
返回值为非零(真)表示wc是十进制数字,返回值为零(假)表示wc不是十进制数字。
#include <stdio.h>
#include <wchar.h>
#include <wctype.h>
int main ()
{
wchar_t str[] = L"1776ad";
long int year;
if (iswdigit(str[0]))
{
year = wcstol (str,NULL,10);
wprintf (L"The year that followed %ld was %ld.\n",year,year+1);
}
return 0;
}
运行结果:
iswdigit() 函数用来检测 str 字符串的首个宽字符是否是十进制数字,如果是,就调用 wcstol() 函数将 str 转换为整数。