Aracılığıyla paylaş


Sayısal değer işlevleri dizesi

Açıklamalar

Ailedeki strto* her işlev, null olarak sonlandırılan bir dizeyi sayısal bir değere dönüştürür. Kullanılabilir işlevler aşağıdaki tabloda listelenmiştir.

İşlev Açıklama
strtod Dizeyi çift duyarlıklı kayan nokta değerine dönüştürme
strtol Dizeyi uzun tamsayıya dönüştürme
strtoul Dizeyi işaretsiz uzun tamsayıya dönüştürme
_strtoi64 Dizeyi 64 bit __int64 tamsayıya dönüştürme
_strtoui64 Dizeyi işaretsiz 64 bit __int64 tamsayıya dönüştürme

wcstod, wcstol, wcstoulve _wcstoi64 sırasıyla , strtol, strtoulve _strtoi64'nin strtodgeniş karakterli sürümleridir. Bu geniş karakterli işlevlerin her birine yönelik dize bağımsız değişkeni, geniş karakterli bir dizedir; her işlev tek bayt karakterli karşılığıyla aynı şekilde davranır.

strtod İşlev iki bağımsız değişken alır: birincisi giriş dizesi, ikincisi ise dönüştürme işlemini sonlandıran karaktere yönelik bir işaretçi. strtol, strtoul_strtoi64 ve _strtoui64 dönüştürme işleminde kullanılacak sayı tabanı olarak üçüncü bir bağımsız değişken alın.

Giriş dizesi, belirtilen türün sayısal değeri olarak yorumlanabilir bir karakter dizisidir. Her işlev, bir sayının parçası olarak tanıyamayan ilk karakterdeki dizeyi okumayı durdurur. Bu karakter, sonlandırıcı null karakter olabilir. , strtolstrtoul, _strtoi64ve _strtoui64için bu sonlandırıcı karakter, kullanıcı tarafından sağlanan sayı tabanından büyük veya buna eşit ilk sayısal karakter de olabilir.

Kullanıcı tarafından sağlanan dönüştürme sonu karakteri işaretçisi çağrı zamanında veya nullptr olarak ayarlanmadıysaNULL, taramayı durduran karakter işaretçisi orada depolanır. Dönüştürme gerçekleştirilemiyorsa (geçerli basamak bulunamadıysa veya geçersiz bir taban belirtildiyse), dize işaretçisinin değeri bu adreste depolanır.

strtod aşağıdaki biçimde bir dize bekler:

[whitespace] [] [digitssign] [.digits] [{deD | | E | }[sign]]digits

bir whitespace , yoksayılan boşluk veya sekme karakterlerinden oluşabilir; sign artı (+) veya eksi (- ) olabilir ve digits bir veya daha fazla ondalık basamaktır. Radix karakterinden önce hiç basamak görünmüyorsa, radix karakterinden sonra en az bir basamak görünmelidir. Ondalık basamakları, giriş harfi (d, D, eveya E) ve isteğe bağlı olarak imzalanan bir tamsayıdan oluşan bir üs takip edebilir. Üstel parça veya radix karakteri görüntülenmezse, dizedeki son basamaktan sonra gelen bir radix karakteri varsayılır. Bu forma uymayan ilk karakter taramayı durdurur.

strtol, strtoul, _strtoi64ve _strtoui64 işlevleri aşağıdaki biçimde bir dize bekler:

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

Temel bağımsız değişken 2 ile 36 arasındaysa, sayının tabanı olarak kullanılır. 0 ise, temeli belirlemek için dönüştürme sonu işaretçisi tarafından başvuruda bulunan ilk karakterler kullanılır. İlk karakter 0 ve ikinci karakter 'x' veya 'X' değilse, dize sekizli tamsayı olarak yorumlanır; aksi takdirde, ondalık sayı 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. strtoul ve _strtoui64 artı (+) veya eksi (-) işareti önekine izin verin; baştaki eksi işareti, dönüş değerinin geçersiz olduğunu gösterir.

Çıkış değeri, yerel ayarın LC_NUMERIC kategori ayarının ayarından etkilenir. Daha fazla bilgi için bkz. setlocale. Bu işlevlerin son eki olmayan _l sürümleri, bu yerel ayara bağımlı davranış için geçerli yerel ayarı kullanır; son ekine _l sahip sürümler, bunun yerine geçirilen yerel ayar parametresini kullanmaları dışında aynıdır.

Bu işlevler tarafından döndürülen değer taşma veya taşmalara neden olabileceğinde veya dönüştürme mümkün olmadığında, özel durum değerleri gösterildiği gibi döndürülür:

İşlev Koşul Döndürülen değer
strtod Taşma +/- HUGE_VAL
strtod Yetersiz akış veya dönüştürme yok 0
strtol + Taşma LONG_MAX
strtol -Taşma LONG_MIN
strtol Yetersiz akış veya dönüştürme yok 0
_strtoi64 + Taşma _I64_MAX
_strtoi64 -Taşma _I64_MIN
_strtoi64 Dönüştürme yok 0
_strtoui64 Taşma _UI64_MAX
_strtoui64 Dönüştürme yok 0

_I64_MAX, _I64_MINve _UI64_MAX içinde <LIMITS.H>tanımlanır.

wcstod, wcstol, wcstoul, _wcstoi64ve _wcstoui64 sırasıyla , strtol, strtoul, _strtoi64ve _strtoui64öğelerinin strtodgeniş karakterli sürümleridir; bu geniş karakterli işlevlerin her birinin dönüştürme sonu bağımsız değişkeninin işaretçisi geniş karakterli bir dizedir. Aksi takdirde, bu geniş karakterli işlevlerin her biri tek bayt karakterli karşılığıyla aynı şekilde davranır.

Ayrıca bkz.

Veri dönüştürme
Yerel ayar
Çok baytlı karakter dizilerinin yorumlanması
Matematik ve kayan nokta desteği
atof, _atof_l, _wtof, _wtof_l