Aracılığıyla paylaş


_strtoui64, _wcstoui64, _strtoui64_l, _wcstoui64_l

Dizeyi bir unsigned __int64 değere dönüştürün.

Sözdizimi

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

Parametreler

strSource
Dönüştürülecek null ile sonlandırılan dize.

endptr
Taramayı durduran karakter işaretçisi.

base
Kullanılacak sayı tabanı.

locale
Kullanılacak yerel ayar.

Dönüş değeri

_strtoui64 , dizesinde strSourcetemsil edilen değeri döndürür, ancak gösterimin taşmasına neden olacağı durumlar dışında, bu durumda değerini döndürür _UI64_MAX. _strtoui64 dönüştürme gerçekleştirilemiyorsa 0 döndürür.

_UI64_MAX içinde LIMITS.Htanımlanır.

ise strSourceNULL veya base sıfır değilse ve 2'den küçük veya 36'dan büyükse olarak errno ayarlanır EINVAL.

İade kodları hakkında daha fazla bilgi için bkz. errno, _doserrno, _sys_errlistve _sys_nerr.

Açıklamalar

_strtoui64 işlevi bir unsigned __int64öğesine dönüştürülürstrSource. _wcstoui64 geniş karakterli _strtoui64bir sürümüdür; strSource bağımsız değişkeni geniş karakterli bir dizedir. Aksi takdirde bu işlevler aynı şekilde davranır.

Her iki işlev de dizeyi strSource bir sayının parçası olarak tanıyamadıkları ilk karakterde okumayı durdurur. Sonlandırıcı null karakter olabilir veya değerinden büyük veya buna eşit baseilk sayısal karakter olabilir.

Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bunu değiştirmek için bkz . CRT'de Genel durum.

Genel metin yordamı eşlemeleri

TCHAR.H Rutin _UNICODE ve _MBCS tanımlanmadı _MBCS Tanımlanan _UNICODE Tanımlanan
_tcstoui64 _strtoui64 _strtoui64 _wcstoui64
_tcstoui64_l _strtoui64_l _strtoui64_l _wcstoui64_l

Geçerli yerel ayarın LC_NUMERIC kategori ayarı içindeki radix karakterinin strSourcetanınmasını belirler; daha fazla bilgi için bkz setlocale. . Soneki olmayan _l işlevler geçerli yerel ayarı kullanır ve _wcstoui64_l bunun yerine geçirilen yerel ayarı _strtoui64_l kullanmaları dışında, sonek olmadan _l karşılık gelen işlevlerle aynıdır. Daha fazla bilgi için bkz . Yerel Ayar.

değilse endptrNULL, taramayı durduran karakterin işaretçisi tarafından endptrişaret edilen konumda depolanır. Dönüştürme gerçekleştirilemiyorsa (geçerli basamak bulunamadıysa veya geçersiz bir taban belirtildiyse), değeri strSource tarafından endptrişaret edilen konumda depolanır.

_strtoui64strSource aşağıdaki biçimdeki bir dizeye işaret etmesini bekler:

[whitespace] [{+ | -}] [0 [{ x | X }]] [digits | letters]

A whitespace , yoksayılan boşluk ve sekme karakterlerinden oluşabilir. digits bir veya daha fazla ondalık basamaktır. letters 'a' ile 'z' (veya 'A' - 'Z' arasında) harflerinden biri veya daha fazlasıdır. Bu forma uymayan ilk karakter taramayı durdurur. 2 ile 36 arasındaysa base , sayının tabanı olarak kullanılır. 0 ise base , temeli belirlemek için tarafından strSource işaret edilen dizenin ilk karakterleri kullanılır. İlk karakter '0' ve ikinci karakter 'x' veya 'X' değilse, dize sekizli tamsayı olarak yorumlanır. İlk karakter '0' ve ikinci karakter 'x' veya 'X' ise, dize onaltılık tamsayı olarak yorumlanır. İlk karakter '1' ile '9' arasındaysa, dize ondalık tamsayı olarak yorumlanır. 'a' ile 'z' (veya 'A' ile 'Z' arasında) harflerine 10 ile 35 arasında değerler atanır; yalnızca atanan değerlerden küçük base olan harflere izin verilir. Tabanın aralığının dışındaki ilk karakter taramayı durdurur. Örneğin, 0 ise ve taranan ilk karakter '0' ise base , sekizli bir tamsayı varsayılır ve '8' veya '9' karakteri taramayı durdurur.

Gereksinimler

Function Gerekli başlık
_strtoui64 <stdlib.h>
_wcstoui64 <stdlib.h> veya <wchar.h>
_strtoui64_l <stdlib.h>
_wcstoui64_l <stdlib.h> veya <wchar.h>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Örnek

// 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 );
}
u = 18446744073709551615

Ayrıca bkz.

Veri dönüştürme
Yerel ayar
localeconv
setlocale, _wsetlocale
Sayısal değer işlevlerine dize
strtod, _strtod_l, wcstod, _wcstod_l
strtoul, _strtoul_l, wcstoul, _wcstoul_l
atof, _atof_l, _wtof, _wtof_l