次の方法で共有


_strtoui64、_wcstoui64、_strtoui64_l、_wcstoui64_l

__int64 の符号なしの値に文字列を変換します。

unsigned __int64 _strtoui64(
   const char *nptr,
   char **endptr,
   int base 
);
unsigned __int64 _wcstoui64(
   const wchar_t *nptr,
   wchar_t **endptr,
   int base 
);
unsigned __int64 _strtoui64_l(
   const char *nptr,
   char **endptr,
   int base,
   _locale_t locale
);
unsigned __int64 _wcstoui64(
   const wchar_t *nptr,
   wchar_t **endptr,
   int base,
   _locale_t locale
);

パラメーター

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

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

  • base
    使用する番号です。

  • locale
    使用するロケール。

戻り値

_strtoui64 は を返します _UI64_MAX 表現でオーバーフローが発生したときに文字列 nptr で表される以外の値を返します。変換 を実行できない場合があります strtoui64 は 0 を返します。

_UI64_MAX は LIMITS.H. で定義されます。

nptr が NULL であるかまたはがゼロ以外の base2 未満または 36 を超える場合はerrno は EINVAL に設定されます。

これらの詳細については_doserrnoerrno_sys_errlist と _sys_nerr とそのほかのリターン コード " " を参照してください。

解説

_strtoui64 の 関数は unsigned__int64 に nptr を変換します。_wcstoui64 関数は、_strtoui64 関数のワイド文字バージョンで、nptr 引数はワイド文字列です。はこれらの関数はまったく同じように動作します。

は数値の一部として認識できない最初の文字の文字列を読み取る nptr これらの関数は表示されなくなります。これには終端の NULL 文字であるかは大きい最初の数値文字 base にはが等価である場合があります。

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

TCHAR.H のルーチン

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

_MBCS が定義されている場合

_UNICODE が定義されている場合

_tcstoui64

_strtoui64

_strtoui64

_wstrtoui64

_tcstoui64_l

_strtoui64_l

_strtoui64_l

_wstrtoui64_l

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

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

_strtoui64 は 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 より小さい文字だけです。

必要条件

ルーチン

必須ヘッダー

_strtoui64

<stdlib.h>

_wcstoui64

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

_strtoui64_l

<stdlib.h>

_wcstoui64_l

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

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

使用例

// crt_strtoui64.c
#include <stdio.h>

unsigned __int64 atoui64(const char *szUnsignedInt) {
   return _strtoui64(szUnsignedInt, NULL, 10);
}

int main() {
   unsigned __int64 u = atoui64("18446744073709551615");
   printf( "u = %I64u\n", u );
}
  

参照

関連項目

データ変換

ロケール

localeconv

setlocale、_wsetlocale

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

strtod、_strtod_l、wcstod、_wcstod_l

strtoul、_strtoul_l、wcstoul、_wcstoul_l

atof、_atof_l、_wtof、_wtof_l