Ver Mensaje Individual
  #3 (permalink)  
Antiguo 24/08/2012, 14:23
ecfisa
 
Fecha de Ingreso: julio-2012
Mensajes: 133
Antigüedad: 12 años, 8 meses
Puntos: 22
Respuesta: Problema de cadena de caracteres

Hola unodostres.

También podes hacerte una función que lo haga:
Código C:
Ver original
  1. #include <stdio.h>
  2.  
  3. double strtofloat(char cad[]) {
  4.   double valor, pw;
  5.   int i, signo;
  6.  
  7.   for(i=0; isspace(cad[i]); i++);           /* saltar ' ' */
  8.  
  9.   signo = (cad[i] == '-') ? -1 : 1;         /* fijar signo */
  10.   if (cad[i] == '+' || cad[i] == '-') i++;  /* avanzar si '+' o '-' */
  11.  
  12.   /* Parte entera */
  13.   for(valor == 0.0; isdigit(cad[i]); i++)
  14.     valor = 10.0 * valor + (cad[i] - '0');
  15.  
  16.   if(cad[i]=='.') i++;                       /* Saltar '.' */
  17.  
  18.   /* Parte decimal */
  19.   for(pw = 1.0; isdigit(cad[i]);i++) {
  20.     valor = 10.0 * valor + (cad[i] - '0');
  21.     pw *= 10.0;
  22.   }
  23.   return signo * valor / pw;
  24. }

Uso:
Código C:
Ver original
  1. printf("%8.9f", strtofloat("3.141592654"));
Lógicamente es reinventar la rueda, como ya te mencionó cesar_casla, existe a función atof que lo hace perfectamente...

Saludos.

Última edición por ecfisa; 24/08/2012 a las 14:29