strtod, _strtod_l, wcstod, _wcstod_l
Dizeleri çift duyarlıklı değerine dönüştürür.
double strtod(
const char *nptr,
char **endptr
);
double _strtod_l(
const char *nptr,
char **endptr,
_locale_t locale
);
double wcstod(
const wchar_t *nptr,
wchar_t **endptr
);
double wcstod_l(
const wchar_t *nptr,
wchar_t **endptr,
_locale_t locale
);
Parametreler
nptr
Dönüştürmek için boş sonlandırılmış dize.endptr
Taramayı durdurur karakter için işaretçi.locale
Kullanılacak yerel ayarı.
Dönüş Değeri
strtodne zaman gösterimi, büyük/küçük harf işlevini verir bir taşma neden dışında kayan noktalı sayı değerini döndürür +/ –HUGE_VAL.İşareti HUGE_VAL temsil edilemeyen değerinin işareti ile eşleşir.strtod0 değerini döndürür dönüştürme yapılabilir veya bir Yetersizlik durumu oluşur.
wcstodanalogously çok değerlerini döndürür strtod.Her iki işlevi için errno ayarlamak ERANGE taşma veya yetersiz gelme oluşur ve geçersiz parametre işleyicisi, açıklandığı şekilde çağrılır Parametre doğrulama.
Bkz: _doserrno, errno, _sys_errlist ve _sys_nerr bu ve diğer dönüş kodları hakkında daha fazla bilgi için.
Notlar
Giriş dizesi her işlevi dönüştürür nptr için bir double.strtod Dönüştürür işlev nptr bir çift duyarlıklı değer.strtoddize okuma başlıyor nptr ilk karakterinde bir numarasının bir parçası tanıdığını olamaz.Bu sondaki boş karakter olabilir.wcstodgeniş karakter sürümü strtod; kendi nptr bağımsız değişkeni olan bir geniş karakter dizesi.Bu işlevler aynı şekilde aksi davranırlar.
Genel metin yordamı eşlemeleri
TCHAR.H yordamına girildi |
_UNICODE & _mbcs tanımlı değil |
Tanımlanan _mbcs |
Tanımlanan _UNICODE |
---|---|---|---|
_tcstod |
strtod |
strtod |
wcstod |
_tcstod_l |
_strtod_l |
_strtod_l |
_wcstod_l |
LC_NUMERIC Kategori geçerli yerel ayarı belirler tanıma sayı tabanı karakterinin nptr*;* daha fazla bilgi için bkz: setlocale.İşlevleri olmadan _l soneki kullanan yerel; _strtod_laynıdır _strtod_l yerine geçirilen yerel kullandıkları olmasıdır.Daha fazla bilgi için bkz. Yerel ayar.
endptr Değil NULL, tarama durdu karakter için bir işaretçi olarak gösterilen konumda depolanan endptr.Dönüştürme işlemi, (geçerli bir basamak bulunamadı veya geçersiz bir temel belirtildi) değerini nptr göre sıralanmasını konumunda depolanan endptr.
strtodbeklediği nptr aşağıdaki biçimde bir dizeye işaret edecek şekilde:
[whitespace] [sign] [digits] [.digits] [ {d | D | e | E}[sign]digits]
A whitespace göz ardı edilir; boşluk ve sekme karakterleri oluşabilir signya artı (+) veya eksi (–); ve digits bir veya daha fazla ondalık basamağı olan.Hiç basamak önce taban karakter görünüyorsa, en az bir sayı tabanı karakterin arkasına gelmelidir.Ondalık basamak bir tanıtım harfi oluşan bir üs izlenebilir (d, D, e, veya E) ve isteğe bağlı olarak imzalı tamsayı.Üstel bir parçası ya da bir sayı tabanı karakter görüntülenirse, taban karakter dizesindeki son basamağını gelmesini kabul edilir.Bu form için uygun değil ilk karakter taramayı durdurur.
Gereksinimler
Yordamı |
Gerekli başlık |
---|---|
strtod, _strtod_l |
<stdlib.h> |
wcstod, _wcstod_l |
<stdlib.h> veya <wchar.h> |
Ek uyumluluk bilgileri için bkz: Uyumluluk giriş.
Örnek
// crt_strtod.c
// This program uses strtod to convert a
// string to a double-precision value; strtol to
// convert a string to long integer values; and strtoul
// to convert a string to unsigned long-integer values.
//
#include <stdlib.h>
#include <stdio.h>
int main( void )
{
char *string, *stopstring;
double x;
long l;
int base;
unsigned long ul;
string = "3.1415926This stopped it";
x = strtod( string, &stopstring );
printf( "string = %s\n", string );
printf(" strtod = %f\n", x );
printf(" Stopped scan at: %s\n\n", stopstring );
string = "-10110134932This stopped it";
l = strtol( string, &stopstring, 10 );
printf( "string = %s\n", string );
printf(" strtol = %ld\n", l );
printf(" Stopped scan at: %s\n\n", stopstring );
string = "10110134932";
printf( "string = %s\n", string );
// Convert string using base 2, 4, and 8:
for( base = 2; base <= 8; base *= 2 )
{
// Convert the string:
ul = strtoul( string, &stopstring, base );
printf( " strtol = %ld (base %d)\n", ul, base );
printf( " Stopped scan at: %s\n", stopstring );
}
}
.NET Framework Eşdeğeri
Ayrıca bkz.
Başvuru
Yorumunu çok baytlı karakter dizileri
strtol, wcstol, _strtol_l, _wcstol_l
strtoul, _strtoul_l, wcstoul, _wcstoul_l