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_l
ve _wcstol_l
içinde string
temsil 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_MIN
döndürürLONG_MAX
.
errno
, taşma veya yetersizlik oluşursa olarak ayarlanır ERANGE
. ise olarak EINVAL
string
NULL
ayarlanı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 ERANGE
daha fazla bilgi için bkz. errno
, _doserrno
, _sys_errlist
ve _sys_nerr
. EINVAL
Açıklamalar
, , ve işlevleri bir long
öğesine dönüştürülürstring
._wcstol_l
_strtol_l
wcstol
strtol
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 base
ilk alfasayısal karakter olabilir.
wcstol
ve _wcstol_l
'nin strtol
_strtol_l
geniş 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ı) string
tanı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
NULL
yoksayılır. Aksi takdirde, taramayı durduran karakterin işaretçisi tarafından end_ptr
iş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_ptr
işaret edilen konumda depolanır.
strtol
string
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. alphanumerics
ondalı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 0
ve 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 base
küçü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 strtod
bakı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