<cwchar>ヘッダでは、ワイド文字 (wchar_t) の入出力・文字列操作・数値変換と、マルチバイト文字とワイド文字の変換のための機能を定義する。これらの機能は、std名前空間に属することを除いてC言語の標準ライブラリ<wchar.h>ヘッダと同じである(ただしwchar_t型は宣言しない)。
型
| 名前 | 説明 | 対応バージョン |
|---|---|---|
size_t |
符号なし整数型 | |
mbstate_t |
マルチバイト文字とワイド文字の変換状態を保持する型 | |
wint_t |
ワイド文字とファイル終端 (WEOF) を表現できる整数型 |
|
tm |
日時を保持する構造体型(<ctime>で定義される型の宣言) |
マクロ
| 名前 | 説明 | 対応バージョン |
|---|---|---|
NULL |
ヌルポインタ定数に展開されるマクロ | |
WCHAR_MAX |
wchar_t型の最大値 |
|
WCHAR_MIN |
wchar_t型の最小値 |
|
WEOF |
ワイド文字ストリームの終端を表すwint_t型の定数 |
|
__STDC_VERSION_WCHAR_H__ |
<cwchar>が提供するC標準ライブラリ機能のバージョン (202311L) |
C++26 |
書式付き入出力
| 名前 | 説明 | 対応バージョン |
|---|---|---|
wprintf |
書式を指定して標準出力に出力する | |
wscanf |
書式を指定して標準入力から入力する | |
fwprintf |
書式を指定してファイルストリームに出力する | |
fwscanf |
書式を指定してファイルストリームから入力する | |
swprintf |
書式と文字数を指定して、ワイド文字列領域に出力する | |
swscanf |
書式を指定してワイド文字列領域から入力する | |
vwprintf |
可変引数リストva_listを使用し、書式を指定して標準出力に出力する |
|
vwscanf |
可変引数リストva_listを使用し、書式を指定して標準入力から入力する |
C++11 |
vfwprintf |
可変引数リストva_listを使用し、書式を指定してファイルストリームに出力する |
|
vfwscanf |
可変引数リストva_listを使用し、書式を指定してファイルストリームから入力する |
C++11 |
vswprintf |
可変引数リストva_listを使用し、書式を指定してワイド文字列領域に出力する |
|
vswscanf |
可変引数リストva_listを使用し、書式を指定してワイド文字列領域から入力する |
C++11 |
文字単位の入出力
| 名前 | 説明 | 対応バージョン |
|---|---|---|
getwchar |
標準入力から1文字入力する | |
getwc |
ファイルストリームから1文字入力する | |
fgetwc |
ファイルストリームから1文字入力する | |
fgetws |
ファイルストリームからN文字入力する | |
putwchar |
標準出力に1文字出力する | |
putwc |
ファイルストリームに1文字出力する | |
fputwc |
ファイルストリームに1文字出力する | |
fputws |
ファイルストリームに文字列を出力する | |
ungetwc |
入力ストリームに1文字戻す | |
fwide |
ストリームの入出力の単位(ワイド文字/マルチバイト文字)を設定・取得する |
数値変換
| 名前 | 説明 | 対応バージョン |
|---|---|---|
wcstod |
ワイド文字列をdouble型に変換する |
|
wcstof |
ワイド文字列をfloat型に変換する |
C++11 |
wcstold |
ワイド文字列をlong double型に変換する |
C++11 |
wcstol |
ワイド文字列を、基数を指定してlong型に変換する |
|
wcstoll |
ワイド文字列を、基数を指定してlong long型に変換する |
C++11 |
wcstoul |
ワイド文字列を、基数を指定してunsigned long型に変換する |
|
wcstoull |
ワイド文字列を、基数を指定してunsigned long long型に変換する |
C++11 |
文字列操作
| 名前 | 説明 | 対応バージョン |
|---|---|---|
wcslen |
文字列の長さを取得する | |
wcscpy |
文字列をコピーする | |
wcsncpy |
文字数を指定して文字列をコピーする | |
wcscat |
文字列を連結する | |
wcsncat |
文字数を指定して文字列を連結する | |
wcscmp |
文字列を比較する | |
wcsncmp |
文字数を指定して文字列を比較する | |
wcscoll |
現在のロケールに従って文字列を比較する | |
wcsxfrm |
ロケールに従った比較のために文字列を変換する | |
wcschr |
文字列から文字を検索する | |
wcsrchr |
文字列から文字を後方検索する | |
wcsstr |
文字列から部分文字列を検索する | |
wcspbrk |
文字列から、指定した集合に含まれる文字を検索する | |
wcsspn |
文字列の先頭から、指定した集合に含まれる文字が続く長さを取得する | |
wcscspn |
文字列の先頭から、指定した集合に含まれない文字が続く長さを取得する | |
wcstok |
文字列を分割する | |
wcsftime |
日時を書式化して文字列に出力する |
メモリ操作
| 名前 | 説明 | 対応バージョン |
|---|---|---|
wmemcpy |
指定した文字数をコピーする | |
wmemmove |
領域が重なっていてもよい形で、指定した文字数をコピーする | |
wmemcmp |
指定した文字数を比較する | |
wmemchr |
指定した文字数の中から文字を検索する | |
wmemset |
指定した文字数を、指定した文字で埋める |
マルチバイト文字とワイド文字の変換
| 名前 | 説明 | 対応バージョン |
|---|---|---|
mbsinit |
変換状態が初期状態であるかを判定する | |
mbrlen |
マルチバイト文字のバイト数を取得する | |
mbrtowc |
マルチバイト文字を、ワイド文字に変換する | |
wcrtomb |
ワイド文字を、マルチバイト文字に変換する | |
mbsrtowcs |
マルチバイト文字列を、ワイド文字列に変換する | |
wcsrtombs |
ワイド文字列を、マルチバイト文字列に変換する | |
btowc |
1バイト文字を、ワイド文字に変換する | |
wctob |
ワイド文字を、1バイト文字に変換する |
備考
- これらの関数名の末尾や中間にある
rは、変換状態を引数として受け取る「再入可能 (restartable)」なバージョンであることを表す。<cstdlib>のmblen()などのように内部状態をもつ関数と異なり、複数のスレッドから安全に使用できる
関連項目
参照
- P0175R1 Synopses for the C library
- P3348R4 C++26 should refer to C23 not C17
- C++26がC23を参照するようになり、
__STDC_VERSION_WCHAR_H__が追加された
- C++26がC23を参照するようになり、