iswctype() — 文字プロパティーのテスト

フォーマット

#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 を持っている場合、真を戻します。

以下のストリング alnum から xdigit は、標準文字クラスとして予約済みです。 関数は、以下のとおりです。各関数につき、同等な isw*() 関数も示します。
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');
   }
}

関連情報