Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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