Section courante

A propos

Section administrative du site

STRTOD

Chaine à double
Langage C stdlib.h

Syntaxe

double strtod(const char *str1,char **fin);

Paramètres

Nom Description
str1 Ce paramètre permet d'indiquer la chaîne de caractères ASCIZ contenant le nombre.
fin Ce paramètre retourne un pointeur à la fin du nombre dans la chaîne de caractères ASCIZ.

Description

Cette fonction permet de convertir la chaîne de caractères en nombre de type «double».

Algorithme

MODULE STRTOD(str, fin)
   Ignorer les espaces blancs au début de str
   SI un signe + ou - est trouvé ALORS
      Mémoriser le signe
   FIN SI

   Lire la partie entière de str (avant le point décimal), si présente
   Lire la partie décimale de str (après le point décimal), si présente

   SI la partie entière ou décimale est présente ALORS
      Calculer la valeur en base 10 de cette partie
   FIN SI

   SI un exposant est trouvé ALORS
      Traiter la partie exposant (si présente) et ajuster la valeur en conséquence
   FIN SI

   SI fin n'est pas NULL ALORS
      Assigner à fin l'adresse du caractère suivant la dernière partie numérique traitée
   FIN SI

   RETOURNE la valeur numérique obtenue

Remarques

Exemple

Voici quelques exemples typiques de l'utilisation de cette fonction :

Essayer maintenant !
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. int main() {
  6.  char *s, *sr;
  7.  s = "0";
  8.  printf("0 = %f\n",strtod(s,&sr));
  9.  s = "1";
  10.  printf("1 = %f\n",strtod(s,&sr));
  11.  s = "123";
  12.  printf("123 = %f\n",strtod(s,&sr));
  13.  s = "-123";
  14.  printf("-123 = %f\n",strtod(s,&sr));
  15.  s = "-123E";
  16.  printf("-123E = %f\n",strtod(s,&sr));
  17.  s = "-123G";
  18.  printf("-123G = %f\n",strtod(s,&sr));
  19.  s = "G";
  20.  printf("G = %i\n",strtod(s,&sr));
  21.  s = "123.45";
  22.  printf("123.45 = %f\n",strtod(s,&sr));
  23.  return 0;
  24. }

on obtiendra le résultat suivant :

0 = 0.000000
1 = 1.000000
123 = 123.000000
-123 = -123.000000
-123E = 0.000000
-123G = -123.000000
G = 0
123.45 = 123.450000

Voir également

Langage de programmation - C - Référence procédures et fonctions - atof
Langage de programmation - C++ - Référence procédures et fonctions - strtod

Références

Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 735.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 267.

Dernière mise à jour : Mardi, le 28 juillet 2015