#include <wctype.h>
int iswctype(wint_t wc, wctype_t wc_prop);
ANSI
はい
コンパイル・コマンドで LOCALETYPE(*LOCALE) が指定される場合、この関数の振る舞いは、現行ロケールの LC_CTYPE カテゴリーの影響を受ける可能性があります。この関数の振る舞いは、LOCALETYPE(*LOCALEUCS2) オプションまたは LOCALETYPE(*LOCALEUTF) オプションのいずれかをコンパイル・コマンドで指定した場合、現行ロケールの LC_UNI_CTYPE カテゴリーによって影響を受ける可能性があります。 この関数は、コンパイル・コマンドに対して LOCALETYPE(*CLD) が指定されている場合には使用できません。詳細については、CCSID およびロケールの理解を参照してください。
詳細については、ワイド文字を参照してください。
iswctype() 関数は、ワイド文字 wc がプロパティー wc_prop を 持っているかどうかを判別します。wc の値が WEOF でもなく、マルチバイト文字に対応するワイド文字の値でもない場合は、その振る舞いは予期できません。 wc_prop の値が無効な場合 (つまり、前の wctype() 関数呼び出しで取得されたものでない、または wc_prop が後続の setlocale() 関数呼び出しによって無効になった場合)、その振る舞いは予期できません。
iswctype() 関数は、ワイド文字 wc の値がプロパティー wc_prop を持っている場合、真を戻します。
iswctype(wc, wctype("alnum")); /* is equivalent to */ iswalnum(wc);
iswctype(wc, wctype("alpha")); /* is equivalent to */ iswalpha(wc);
iswctype(wc, wctype("blank")); /* is equivalent to */ iswblank(wc);
iswctype(wc, wctype("cntrl")); /* is equivalent to */ iswcntrl(wc);
iswctype(wc, wctype("digit")); /* is equivalent to */ iswdigit(wc);
iswctype(wc, wctype("graph")); /* is equivalent to */ iswgraph(wc);
iswctype(wc, wctype("lower")); /* is equivalent to */ iswlower(wc);
iswctype(wc, wctype("print")); /* is equivalent to */ iswprint(wc);
iswctype(wc, wctype("punct")); /* is equivalent to */ iswpunct(wc);
iswctype(wc,wctype("space")); /* is equivalent to */ iswspace(wc);
iswctype(wc, wctype("upper")); /* is equivalent to */ iswupper(wc);
iswctype(wc, wctype("xdigit")); /* is equivalent to */ iswxdigit(wc);
#include <stdio.h>
#include <wctype.h>
int main(void)
{
int wc;
for (wc=0; wc <= 0xFF; wc++) {
printf("%3d", wc);
printf(" %#4x ", wc);
printf("%3s", iswctype(wc, wctype("alnum")) ? "AN" : " ");
printf("%2s", iswctype(wc, wctype("alpha")) ? "A" : " ");
printf("%2s", iswctype(wc, wctype("blank")) ? "B" : " ");
printf("%2s", iswctype(wc, wctype("cntrl")) ? "C" : " ");
printf("%2s", iswctype(wc, wctype("digit")) ? "D" : " ");
printf("%2s", iswctype(wc, wctype("graph")) ? "G" : " ");
printf("%2s", iswctype(wc, wctype("lower")) ? "L" : " ");
printf(" %c", iswctype(wc, wctype("print")) ? wc : ' ');
printf("%3s", iswctype(wc, wctype("punct")) ? "PU" : " ");
printf("%2s", iswctype(wc, wctype("space")) ? "S" : " ");
printf("%3s", iswctype(wc, wctype("print")) ? "PR" : " ");
printf("%2s", iswctype(wc, wctype("upper")) ? "U" : " ");
printf("%2s", iswctype(wc, wctype("xdigit")) ? "X" : " ");
putchar('¥n');
}
}