<wctype.h>
-- 函数
阅读:0
作者:严长生
iswalnum() 判断一个宽字符是否是字母或数字
int iswalnum (wint_t wc);
iswalnum() 用来检测一个宽字符是否是字母或者十进制数字。如果仅仅检测一个宽字符是否是字母,可以使用 iswalpha() 函数;如果仅仅检测一个宽字符是否是十进制数字,可以使用 iswdigit() 函数。
如果一个宽字符被 iswalpha() 或者 iswdigit() 检测后返回“真”,那么它也一定会被 iswalnum() 检测成功(返回“真”)。
iswalnum() 是 isalnum()(位于<ctype.h>中)的宽字符版本:如果参数 wc 能够被 wctob() 转换为单个字节的形式,并且转换后的字符使用 isalnum() 检测返回“真”(非零值),那么 iswalnum() 也一定会将 wc 判定为字母或十进制数字。
参数
-
wc
要检测的宽字符。它可以是一个有效的宽字符(被转换为 wint_t 类型),也可以是 WEOF(表示无效的宽字符)。
返回值
返回值为非零(真)表示wc
是字母或者十进制数字,返回值为零(假)表示wc
既不是字母也不是十进制数字。
实例
检测一个字符串的开头有多少个字母和十进制数字。#include <stdio.h> #include <wctype.h> #include <wchar.h> int main () { int i; wchar_t str[] = L"c3po..."; i=0; while (iswalnum(str[i])) i++; wprintf (L"The first %d characters are alphanumeric.\n",i); return 0; }运行结果:
The first 4 characters are alphanumeric.
关于字母和十进制数字
一个宽字符是否是字母和程序的地域设置有关,在默认的地域设置(默认为"C"
)中,字母包含如下的字符:
a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
在其它的地域设置中,可能还会包含更多的字母,请查阅 iswalpha() 了解更多细节。而对于十进制数字,不管在哪种地域设置中,它只能包含下面的字符:
0 1 2 3 4 5 6 7 8 9