wcstoul |
| ||||
wcstoul | |
ヘッダ | #include <wchar.h> |
形 式 | unsigned long wcstoul(const wchar_t *nptr, wchar_t **endptr, int base); |
機 能 | nptrが指すワイド文字列の最初の部分を、unsigned long型の表現に変換する。 まず始めに、入力ワイド文字列を次の三つの部分に分割する。 第1の部分 … iswspace関数の規定による空白類ワイド文字の並び(空でもよい)。 第2の部分 … baseを基数とする整数と同様の形式の変換対象列。 第3の部分 … 認識の対象とならないワイド文字の1ワイド文字以上の末尾のワイド文字列。 次に変換対象列の部分を整数に変換し、その結果を返す。 baseの値が0のとき、変換対象列の認識可能な形式は、整数定数と同じである。ただし、省略可能な先行する正符号または負符号があってもよいが、整数接尾語は含まない。baseの値が2以上36以下であるとき、変換対象列の認識可能な形式は、基数baseで整数を表現する英字および数字の列である。ただし、省略可能な先行する正符号または負符号があってもよいが、整数接尾語は含まない。a(またはA)からz(またはZ)までの英字は、10から35までの値に対応する。baseの値より小さい値に対応する英字だけを許す。baseの値が16のとき、もしあれば符号の後ろ、英字および数字の列の前に省略可能なワイド文字0xまたは0Xがあっても構わない。 変換対象列は、入力ワイド文字列中の最初の非空白類ワイド文字で始まり、認識可能な形式の最も長い部分列として定義する。入力ワイド文字列が空であるか、すべて空白類からなるか、または最初の非空白類ワイド文字が符号、許される英字および数字のいずれでもないとき、変換対象列はワイド文字を含まない。 変換対象列が認識可能な形式で、かつbaseの値が0のとき、最初の数字で始まるワイド文字の列を整数定数として解釈する。変換対象列が認識可能な形式で、かつbaseの値が2以上36以下であるとき、それを変換の基数に用い、各英字が上で規定した値に対応するものとして整数に変換する。変換対象列が負符号で始まるとき、変換の結果の値は負となる。endptrが空ポインタでなければ、末尾のワイド文字列へのポインタをendptrが指すオブジェクトに格納する。 付加的に処理系定義の変換対象列の形式を受理しても構わない。 変換対象列が空であるかまたは認識可能な形式でないとき、変換は行わない。このとき、endptrが空ポインタでなければ、nptrの値をendptrが指すオブジェクトに格納する。 |
返却値 | 変換に成功すれば変換した値を返し、失敗すれば0を返す。正しい値が表現可能な値の範囲外であるとき、ULONG_MAXを返し、errnoにはマクロERANGEの値を格納する。 |