Aracılığıyla paylaş


strtol, wcstol, _strtol_l, _wcstol_l

Dizeleri tamsayı long değerine dönüştürün.

Sözdizimi

long strtol(
   const char *string,
   char **end_ptr,
   int base
);
long wcstol(
   const wchar_t *string,
   wchar_t **end_ptr,
   int base
);
long _strtol_l(
   const char *string,
   char **end_ptr,
   int base,
   _locale_t locale
);
long _wcstol_l(
   const wchar_t *string,
   wchar_t **end_ptr,
   int base,
   _locale_t locale
);

Parametreler

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

end_ptr
Son yorumlanan karakterden sonraki karakteri işaret etmek için ayarlanmış bir çıkış parametresi. yoksayılır, eğer ise NULL.

base
Kullanılacak sayı tabanı.

locale
Kullanılacak yerel ayar.

Dönüş değeri

strtol, wcstol, _strtol_lve _wcstol_l içinde stringtemsil edilen değeri döndürür. Dönüştürme mümkün değilse 0 döndürür. Gösterim taşmalara neden olduğunda veya LONG_MINdöndürürLONG_MAX.

errno , taşma veya yetersizlik oluşursa olarak ayarlanır ERANGE . ise olarak EINVAL string NULLayarlanır. Veya sıfırdan küçükse ve 2'den küçükse veya 36'dan büyükse base . , ve diğer iade kodları hakkında ERANGEdaha fazla bilgi için bkz. errno, _doserrno, _sys_errlistve _sys_nerr. EINVAL

Açıklamalar

, , ve işlevleri bir longöğesine dönüştürülürstring._wcstol_l _strtol_lwcstolstrtol Bir sayının parçası olarak tanınmayan ilk karakterde okumayı string durdururlar. Bu, terminating-null karakteri veya değerinden büyük veya buna eşit baseilk alfasayısal karakter olabilir.

wcstol ve _wcstol_l 'nin strtol _strtol_lgeniş karakterli sürümleridir. Bağımsız string değişkenleri geniş karakterli bir dizedir. Bu işlevler ile aynı strtol şekilde davranır ve _strtol_l aksi takdirde. Yerel ayarın LC_NUMERIC kategori ayarı, içindeki radix karakterinin (kesirli işaretçi veya ondalık noktası) stringtanınmasını belirler. İşlevleri strtol ve wcstol geçerli yerel ayarı kullanın. _strtol_l ve _wcstol_l bunun yerine geçirilen yerel ayarı kullanın. Daha fazla bilgi için bkz. [setlocale] ve Yerel Ayar.

olduğunda end_ptr NULLyoksayılır. Aksi takdirde, taramayı durduran karakterin işaretçisi tarafından end_ptrişaret edilen konumda depolanır. Geçerli basamak bulunamazsa veya geçersiz bir taban belirtilirse dönüştürme mümkün değildir. değeri string daha sonra tarafından end_ptrişaret edilen konumda depolanır.

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

[whitespace] [{+ | -}] [0 [{ x | X }]] [alphanumerics]

İsteğe bağlı öğeleri köşeli ayraçlar ([ ]) çevreler. Küme ayraçları ve dikey çubuk ({ | }) tek bir öğe için alternatifleri çevreler. whitespace yoksayılan boşluk ve sekme karakterlerinden oluşabilir. alphanumericsondalık basamaklar veya ile (veya 'A' üzerinden 'z' ) arasında 'Z'harflerdir'a'. Bu forma uymayan ilk karakter taramayı durdurur. 2 ile 36 arasındaysa base , sayının tabanı olarak kullanılır. ise base 0, temeli belirlemek için tarafından string işaret edilen dizenin ilk karakterleri kullanılır. İlk karakter ise 0ve ikinci karakter veya 'X'değilse'x', dize sekizli tamsayı olarak yorumlanır. İlk karakter veya ikinci karakter '0' 'x' ise 'X', dize onaltılık tamsayı olarak yorumlanır. İlk karakter üzerinden '9'ise'1', dize ondalık tamsayı olarak yorumlanır. (veya 'A' ) arasında 'Z''z' harflere 'a' 10 ile 35 arasında değerler atanır. Tarama yalnızca değerleri değerinden baseküçük olan harflere izin verir. Tabanın aralığının dışındaki ilk karakter taramayı durdurur. Örneğin, ile "01"başladığını varsayalımstring. ise base 0, tarayıcı sekizli bir tamsayı olduğunu varsayar. Bir '8' veya '9' karakteri taramayı durdurur.

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

Genel metin yordamı eşlemeleri

TCHAR.H yordamı _UNICODE ve _MBCS tanımlanmadı _MBCS tanımlanan _UNICODE tanımlanan
_tcstol strtol strtol wcstol
_tcstol_l _strtol_l _strtol_l _wcstol_l

Gereksinimler

Yordam Gerekli başlık
strtol <stdlib.h>
wcstol <stdlib.h> veya <wchar.h>
_strtol_l <stdlib.h>
_wcstol_l <stdlib.h> veya <wchar.h>

_strtol_l ve _wcstol_l işlevleri, Standart C kitaplığının parçası değil, Microsoft'a özeldir. Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Örnek

örneğine strtodbakın.

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
strtoll, _strtoll_l, wcstoll, _wcstoll_l
strtoul, _strtoul_l, wcstoul, _wcstoul_l
atof, _atof_l, _wtof, _wtof_l