共用方式為


_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傳回值表示字串中的nptr,但當表示會造成溢位,則它傳回_UI64_MAX。_strtoui64可以不執行任何轉換,則會傳回 0。

_UI64_MAX定義在 [限制。H.

如果nptr是NULL或base不是零,並不到 2 或大於 36, errno設為EINVAL。

請參閱 _doserrno、 errno、 _sys_errlist,以及 _sys_nerr 如需有關這些項目,和其他的詳細資訊,任何傳回碼。

備註

The _strtoui64function converts nptr to an unsigned __int64._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。如果可以不執行任何轉換 (找不到沒有有效的數字或指定無效的基底) 的值nptr儲存在所指位置endptr。

_strtoui64 預期nptr為指向字串的格式如下:

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

A whitespace 可能會包含空格及 tab 鍵字元,會被忽略 ; digits 有一或多個十進位數字。不適合這種形式的第一個字元就會停止掃描。如果base是介於 2 和 36,那麼它會使用的數字基底。如果base為 0,起始的字元字串所指的nptr用來判斷基底。如果第一個字元是 0,第二個字元不是 'x' X',字串會解譯為八進位的整數。 否則,它即解譯為十進位的數字。如果第一個字元是 '0',第二個字元是 'x' X',字串會解譯成十六進位整數。如果第一個字元是 '1' 到' 9',此字串會解譯為十進位整數。字母 'a' 到 'z' (或 'A' 到 'Z') 被指派的值 10,透過 35。 字母其指派的值是小於base允許的。

需求

常式

所需的標頭

_strtoui64

<stdlib.h>

_wcstoui64

<stdlib.h> 或者 <wchar.h>

_strtoui64_l

<stdlib.h>

_wcstoui64_l

<stdlib.h> 或者 <wchar.h>

其他的相容性資訊,請參閱相容性在簡介中。

範例

// 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