iswalnum() - iswxdigit() — ワイド整数値のテスト
フォーマット
#include <wctype.h>
int iswalnum(wint_t wc);
int iswalpha(wint_t wc);
int iswblank(wint_t wc);
int iswcntrl(wint_t wc);
int iswdigit(wint_t wc);
int iswgraph(wint_t wc);
int iswlower(wint_t wc);
int iswprint(wint_t wc);
int iswpunct(wint_t wc);
int iswspace(wint_t wc);
int iswupper(wint_t wc);
int iswxdigit(wint_t wc);
言語レベル
ANSI
スレッド・セーフ
はい
ロケール依存
コンパイル・コマンドで LOCALETYPE(*LOCALE) が指定される場合、これらの関数の振る舞いは、現行ロケールの LC_CTYPE カテゴリーの影響を受ける可能性があります。これらの関数の振る舞いは、LOCALETYPE(*LOCALEUCS2) オプションまたは LOCALETYPE(*LOCALEUTF) オプションのいずれかをコンパイル・コマンドで指定した場合、現行ロケールの LC_UNI_CTYPE カテゴリーによって影響を受ける可能性があります。 これらの関数は、 コンパイル・コマンドで LOCALETYPE(*CLD) が指定される場合には使用できません。詳細については、CCSID およびロケールの理解を参照してください。
ワイド文字関数
詳細については、ワイド文字を参照してください。
説明
上記の関数はすべて <wctype.h> 内で宣言されており、指定されているワイド整数値をテストします。
wc の値は、現行ロケール内で有効な文字に対応するワイド文字コードでなければならないか、または、マクロ WEOF の値と等しくなければなりません。 引数の値がその他の場合、振る舞いは予期できません。
このグループ内の各関数の説明が以下に続きます。
- iswalnum()
- ワイド英数字をテストします。
- iswalpha()
- 現行ロケールの alpha クラスで定義されている、ワイド英字をテストします。
- iswblank()
- 現行ロケールの blank クラスで定義されている、ワイド・ブランク文字やタブ文字をテストします。
- iswcntrl()
- 現行ロケールの cntrl クラスで定義されている、ワイド制御文字をテストします。
- iswdigit()
- 現行ロケールの digit クラスで定義されている、0 から 9 までのワイド 10 進数字をテストします。
- iswgraph()
- 現行ロケールの graph クラスで定義されている、ワイド印字文字 (スペースではなく) をテストします。
- iswlower()
- 原稿ロケールの lower クラスで定義されているワイド小文字、または iswcntrl()、iswdigit()、iswspace() 関数のどれもが真ではないワイド小文字をテストします。
- iswprint()
- 現行ロケールの print クラスで定義されている、すべてのワイド印字文字をテストします。
- iswpunct()
- 現行ロケールの punct クラスで定義されている、ワイド非英数字、非スペース文字をテストします。
- iswspace()
- 現行ロケールの space クラスで定義されている、ワイド空白文字をテストします。
- iswupper()
- 現行ロケールの upper クラスで定義されている、ワイド大文字をテストします。
- iswxdigit()
- 現行ロケールの xdigit クラスで定義されている、0 から 9、a から f、または A から F までのワイド 16 進数字をテストします。
戻り値
これらの関数は、ワイド整数がテスト値を満たしている場合は非ゼロの値を戻し、満たしていない場合は 0 の値を戻します。wc の値は、ワイド符号なし char として表現可能なものでなくてはいけません。WEOF は入力値として妥当です。
例
#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", iswalnum(wc) ? "AN" : " ");
printf("%2s", iswalpha(wc) ? "A" : " ");
printf("%2s", iswblank(wc) ? "B" : " ");
printf("%2s", iswcntrl(wc) ? "C" : " ");
printf("%2s", iswdigit(wc) ? "D" : " ");
printf("%2s", iswgraph(wc) ? "G" : " ");
printf("%2s", iswlower(wc) ? "L" : " ");
printf(" %c", iswprint(wc) ? wc : ' ');
printf("%3s", iswpunct(wc) ? "PU" : " ");
printf("%2s", iswspace(wc) ? "S" : " ");
printf("%3s", iswprint(wc) ? "PR" : " ");
printf("%2s", iswupper(wc) ? "U" : " ");
printf("%2s", iswxdigit(wc) ? "X" : " ");
putchar('¥n');
}
}