名前 | 形式 | MT レベル | 機能説明 | 関連項目 | 注意事項 | 使用上の留意点
#include <wstring.h>long wstrtol(str, wchar_t*, str, int base);
Unsafe
wstrtol() は str が指すワイド文字列が示す値をロング整数として返します。文字列は base と矛盾する最初の文字が検知されるまで走査されます。先行する ( wctype(3c) の iswspace で定義される ) 空白文字は無視されます。
wstrtol が認識する文字列は、任意の個数の空白文字 ( wctype(3c) の iswspace で定義される ) で始まり、次に + または - 符号を付けられる小数点を含み得る 10 進数の数字文字列です。 この文字列に使用する文字は ASCII 文字か JIS X 0208 文字とすることができますが、混在させることはできません。
ptr の値が (wchar_t **)NULL でない場合、走査を終了させた文字へのポインタが ptr が指す番地に返されます。整数に変換できない場合は ptr の指す番地に str がセットされ 0 が返されます。
base が正である場合 (かつ、36 以下の場合) には、変換時の基数として使用されます。base が 16 である場合、符号 (省略可) に続くゼロ、あるいは 0x または 0Xは無視されます。
base がゼロである場合、文字列そのものを見て基数を判別します。この場合、省略可能な先行符号に先行ゼロが続く場合は 8 進変換、0x または 0X が続く場合は 16 進変換が行われます。その他の場合は、10進変換が行われます。
long から int への切り捨ては、代入によって 明示的にキャストするときにも起きます。
この関数を使用するためには、setlocale() 関数によって、LC_CTYPE
カテゴリを ja またはこれと同等な日本語ロケール名に設定しておく必要があります。
scanf(3S), wctype(3c), wsscanf(3c), wstrtod(3X)
wstrtol() を使用する場合には、コンパイラオプション -ljapanese によって、オブジェクトモジュールに /usr/lib/libjapanese.a をリンクする必要があります。
オーバーフローは無視されます。ロング変数で表現可能な数値の範囲については、LONG_MAX および LONG_MIN 定数を参照してください。