strtol、wcstol、_strtol_l、_wcstol_l
長整数値に変換した文字列。
long strtol(
const char *nptr,
char **endptr,
int base
);
long wcstol(
const wchar_t *nptr,
wchar_t **endptr,
int base
);
long _strtol_l(
const char *nptr,
char **endptr,
int base,
_locale_t locale
);
long _wcstol_l(
const wchar_t *nptr,
wchar_t **endptr,
int base,
_locale_t locale
);
パラメーター
nptr
NULL で終わる変換対象の文字列。endptr
スキャンの終了位置を示す文字へのポインター。base
使用する番号です。locale
使用するロケール。
戻り値
strtol は LONG_MAX または LONG_MIN を返す表現でオーバーフローが発生したときに文字列 nptr で表される以外の値を返します。strtol は変換を実行できなかった場合は 0 を返します。wcstol 関数の戻り値は、strtol 関数の戻り値と同じです。両方の関数に対してerrno は ERANGE にオーバーフローまたはアンダーフローが発生する設定されます。
これらのプロパティおよびそのほかのリターン コードの詳細については _doserrnoerrno_sys_errlist と _sys_nerr を参照してください。
解説
strtol の関数は long に nptr を変換します。strtol 関数は、数値の一部として認識できない文字を最初に見つけた時点で、文字列 nptr の読み取りを終了します。これには終端の NULL 文字であるかは大きい最初の数値文字 base にはが等価である場合があります。
wcstol 関数は、strtol 関数のワイド文字バージョンで、nptr 引数はワイド文字列です。それ以外では、これらの関数の動作は同じです。
汎用テキスト ルーチンのマップ
TCHAR.H のルーチン |
_UNICODE および _MBCS が未定義の場合 |
_MBCS が定義されている場合 |
_UNICODE が定義されている場合 |
---|---|---|---|
_tcstol |
strtol |
strtol |
wcstol |
_tcstol_l |
_strtol_l |
_strtol_l |
_wcstol_l |
現在のロケールの LC_NUMERIC のカテゴリの設定に nptr の小数点文字が認識 ; 詳細についてはsetlocale を参照してください。_l のサフィックスが付いていない関数は現在のロケールを使用します ; _strtol_l と _wcstol_l は _l のサフィックスなしで対応する関数と同じですが代わりに渡されたロケールを使用します。詳細については、「ロケール」を参照してください。
endptr が NULL 以外の場合は、スキャンを停止させた文字へのポインターを endptr が指す位置に格納します。変換できなかった場合 (有効な数字が見つからなかった場合、または無効な base を指定した場合) は、nptr の値を endptr が指す位置に格納します。
strtol は nptr が次の形式の文字列を指すと想定します :
[whitespace] [{+ |–}] [0 [{ x |X }]] [digits]
whitespace 空間はタブ文字で無視と構成される可能性がある ; digits は一つ以上の 10 進数です。この形式に一致しない文字を見つけるとスキャンを停止します。base が 2 と 36 の間にある場合は数値のベースとして使用されます。が 0 の場合 base ベースを確認するにはnptr が指す文字列の最初の文字が使用されています。最初の文字が 02 文字目が X または x である文字列を 8 バイトの整数として解釈されます。; それ以外の場合は10 進数として解釈されます。最初の文字が 「 0 " で2 番目の文字が X または x の場合文字列は 16 進整数として解釈されます。最初の文字が " 9 "「 1 " の場合文字列は 10 進整数として解釈されます。「 z を使用して文字で (または z 「「) は値 10 から 35 が代入 ; 代入された値は base より小さい文字だけです。
必要条件
ルーチン |
必須ヘッダー |
---|---|
strtol |
<stdlib.h> |
wcstol |
<stdlib.h> または <wchar.h> |
_strtol_l |
<stdlib.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
使用例
strtod の例を参照してください。
同等の .NET Framework 関数
参照
関連項目
strtod、_strtod_l、wcstod、_wcstod_l