この関数の目的
mbtowc()は、複バイト文字をワイド文字に変換する。 この関数は複バイト文字関数である。
定義
#include <stdlib.h> int mbtowc(wchar_t *pwc, const char *s, size_t n);
働き
s がヌルポインタでなければ、この関数は s が指す複バイト文字のバイト数を決定する。 次に、複バイト文字に相当する wchar_t で表す文字コードを決定する。(ヌル文字に相当する文字コードは0である。) 複バイト文字が認識可能で、 pwc がヌルポインタでなければ、 pwc が指すオブジェクトにその文字コードが格納される。 s が指す配列の最大 n バイトまでが吟味される。
処理系は、どのライブラリ関数も mbtowc() を呼ばないように動作しなければならない。
返り値は、s がヌルポインタである場合、状態依存の符号化を持つか持たないかで非ゼロかゼロが返る。 s がヌルポインタでない場合、( s がヌル文字を指す時) 0か、 ( n 以下のバイト数で正しい複バイト文字が形成される時)複バイト文字内のバイト数を返すか、 (複バイト文字として認識されない時)-1を返す。
返り値は n や MB_CUR_MAX
マクロの値より大きくなることはない。
解説
mbtowc は MultiByte TO WideChar の略であろう。