Share via


_strtoi64、_wcstoi64、_strtoi64_l、_wcstoi64_l

更新 : 2007 年 11 月

文字列を __int64 型の値に変換します。

__int64 _strtoi64(
   const char *nptr,
   char **endptr,
   int base 
);
__int64 _wcstoi64(
   const wchar_t *nptr,
   wchar_t **endptr,
   int base 
);
__int64 _strtoi64_l(
   const char *nptr,
   char **endptr,
   int base,
   _locale_t locale
);
__int64 _wcstoi64_l(
   const wchar_t *nptr,
   wchar_t **endptr,
   int base,
   _locale_t locale
);

パラメータ

  • nptr
    NULL で終わる変換対象の文字列。

  • endptr
    スキャンの終了位置を示す文字へのポインタ。

  • base
    使用する基数。

  • locale
    使用するロケール。

戻り値

_strtoi64 関数は、オーバーフローの場合は _I64_MAX または _I64_MIN を返し、それ以外の場合は nptr 文字列が表す値を返します。この関数は、変換を実行できない場合に 0 を返します。_wcstoi64 関数の戻り値は、strtoi64 関数の戻り値と同じです。

_I64_MAX と _I64_MIN は、LIMITS.H で定義されています。

nptr が NULL の場合、または base が 0 以外で、2 未満または 36 を超える場合、errno は EINVAL に設定されます。

戻り値の詳細については、「_doserrno、errno、_sys_errlist、および _sys_nerr」を参照してください。

解説

_strtoi64 関数は、nptr を __int64 に変換します。どちらの関数も、数値の一部として認識できない文字を最初に見つけた時点で、文字列 nptr の読み取りを終了します。これは終端の null 文字、または base 以上の最初の数値文字の場合があります。_wcstoi64 は、_strtoi64 のワイド文字バージョンです。nptr 引数はワイド文字列です。それ以外では、これらの関数の動作は同じです。

汎用テキスト ルーチンのマップ

TCHAR.H のルーチン

_UNICODE および _MBCS が未定義の場合

_MBCS が定義されている場合

_UNICODE が定義されている場合

_tcstoi64

_strtoi64

_strtoi64

_wcstoi64

_tcstoi64_l

_strtoi64_l

_strtoi64_l

_wcstoi64_l

このロケールの LC_NUMERIC カテゴリの設定に基づいて nptr の小数点文字が認識されます。詳細については、「setlocale」を参照してください。_l サフィックスが付いていない関数は、現在のロケールを使用します。_strtoi64_lと _wcstoi64_l は、渡されたロケールを使用することを除いて _l サフィックスが付いていない対応する関数と同じです。詳細については、「ロケール」を参照してください。

endptr が NULL 以外の場合は、スキャンを停止させた文字へのポインタを endptr が指す位置に格納します。変換できなかった場合 (有効な数字が見つからなかった場合、または無効な base を指定した場合) は、nptr の値を endptr が指す位置に格納します。

_strtoi64は、nptr が次の形式の文字列を指すことを想定しています。

[whitespace] [{+ | –}] [0 [{ x | X }]] [digits]

whitespace は、スペースまたはタブ文字のことであり、無視されます。digits は 1 つ以上の 10 進数字です。この形式に一致しない文字を見つけるとスキャンを停止します。base が 2 と 36 の間の場合は、基数として使用されます。base が 0 の場合は、nptr が指す文字列の先頭の文字で基数を判定します。最初の文字が 0 で、2 番目の文字が x または X 以外であると、文字列は 8 進整数と解釈されます。それ以外の場合は、10 進数と解釈されます。最初の文字が 0 で、2 番目の文字が x または X である場合、文字列は 16 進整数と解釈されます。最初の文字が 1 から 9 までの数値であると、文字列は 10 進整数と解釈されます。a ~ z (または A ~ Z) の文字は、10 ~ 35 の値に割り当てます。数値に使用できる文字は、base より小さい値が割り当てられている文字だけです。

必要条件

ルーチン

必須ヘッダー

_strtoi64, _strtoi64_l

<stdlib.h>

_wcstoi64, _wcstoi64_l

<stdlib.h> または <wchar.h>

互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。

参照

参照

データ変換

ロケール

localeconv

setlocale、_wsetlocale

文字列を数値に変換する関数

strtod、_strtod_l、wcstod、_wcstod_l

strtoul、_strtoul_l、wcstoul、_wcstoul_l

atof、_atof_l、_wtof、_wtof_l