Bildirim
double strtod(const char *str, char **strend);
double strtod(const char *restrict str, char **restrict strend); (C99)
float strtof(const char *restrict str, char **restrict strend); (C99)
long double strtod(const char *restrict str, char **restrict strend); (C99)
Açıklama
Str parametresi ile gösterilen karakter dizisini float bir değere (double) çevirir. Strend parametre değeri NULL bir işaretçi değilse, dönüşümde kullanılan son karakterden sonraki karakteri gösteren bir işaretçi, strend tarafından gösterilen belleğe yüklenir.
Parametreler
str: Çevrilecek olan karakter dizisini gösteren bir işaretçidir.
strend: Bir karakteri gösteren işaretçiyi gösteren bir işaretçidir. Bu işaretçi fonksiyonun işlemi sona erdiğinde, geçerli son sayısal değerden sonraki ilk karakterin adresi alır.
Dönüş değeri
Başarı durumunda, çevrilen float değeri geri döndürülür. Eğer geçerli bir çevirme işlemi gerçekleştirilemezse, sıfır değeri döndürülür.
Örnek
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char cdizi[] = "121.75&Bilgisayar";
char *cp;
double ret;
ret = strtod(cdizi, &cp);
printf("Sayı değeri: %.2lf\n", ret);
printf("Karakterler: %s", cp);
return 0;
}
Yukarıdaki örnekte, program aşağıdaki satırları ekrana yazar.
Sayı değeri: 121.75 Karakterler: &Bilgisayar
Program bir karakter dizisi içindeki rakamsal değerleri float bir değere çevirerek ve rakamsal olmayan değerleri doğrudan ekrana yazar.