<cwctype>ヘッダでは、ワイド文字の種別判定と変換のための機能を定義する。これらの機能は、std名前空間に属することを除いてC言語の標準ライブラリ<wctype.h>ヘッダと同じである。
すべての関数で、ワイド文字はwint_t型で表される。また、すべての関数はロケールのLC_CTYPEカテゴリの影響を受ける。
型
| 名前 | 説明 | 対応バージョン |
|---|---|---|
wint_t |
ワイド文字とファイル終端 (WEOF) を表現できる整数型 (<cwchar>でも定義される型) |
|
wctype_t |
ワイド文字の種別を表す型 | |
wctrans_t |
ワイド文字の変換規則を表す型 |
マクロ
| 名前 | 説明 | 対応バージョン |
|---|---|---|
WEOF |
ワイド文字ストリームの終端を表すwint_t型の定数 (<cwchar>でも定義されるマクロ) |
種別の判定
| 名前 | 説明 | 対応バージョン |
|---|---|---|
iswalnum |
ワイド文字が英数字であるかを判定する | |
iswalpha |
ワイド文字が英字であるかを判定する | |
iswblank |
ワイド文字が空白類文字であるかを判定する | C++11 |
iswcntrl |
ワイド文字が制御文字であるかを判定する | |
iswdigit |
ワイド文字が10進数字であるかを判定する | |
iswgraph |
ワイド文字が空白を除く表示文字であるかを判定する | |
iswlower |
ワイド文字が小文字であるかを判定する | |
iswprint |
ワイド文字が表示文字であるかを判定する | |
iswpunct |
ワイド文字が区切り文字であるかを判定する | |
iswspace |
ワイド文字が空白文字であるかを判定する | |
iswupper |
ワイド文字が大文字であるかを判定する | |
iswxdigit |
ワイド文字が16進数字であるかを判定する |
文字の変換
| 名前 | 説明 | 対応バージョン |
|---|---|---|
towlower |
ワイド文字を小文字に変換する | |
towupper |
ワイド文字を大文字に変換する |
ロケールが定義する種別・変換
| 名前 | 説明 | 対応バージョン |
|---|---|---|
wctype |
名前から種別を取得する | |
iswctype |
取得した種別によってワイド文字を判定する | |
wctrans |
名前から変換規則を取得する | |
towctrans |
取得した変換規則によってワイド文字を変換する |
備考
iswalnum()などの関数は、判定する種別が関数ごとに決まっている。これに対してwctype()とiswctype()の組み合わせでは、判定する種別を実行時に指定できるため、ロケールが独自に定義する種別も判定できる。towlower()とwctrans()・towctrans()の関係も同様である- 文字型ごとに種別判定を切り替えて扱いたい場合は、
<locale>のstd::ctypeクラスを使用できる