Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Problema de cadena de caracteres

Estas en el tema de Problema de cadena de caracteres en el foro de C/C++ en Foros del Web. El problema es el siguiente, y no tengo por donde pillarlo(y eso que pone que es de nivel facil ) "Programa que traduzca una cadena ...
  #1 (permalink)  
Antiguo 24/08/2012, 10:03
 
Fecha de Ingreso: agosto-2012
Mensajes: 3
Antigüedad: 11 años, 8 meses
Puntos: 0
Problema de cadena de caracteres

El problema es el siguiente, y no tengo por donde pillarlo(y eso que pone que es de nivel facil )

"Programa que traduzca una cadena de caracteres que contenga un numero real, al numero que lo representa. Ejemplo:

cadena: 458.245 (son tipo char)
numero: 458.245(tipo float, con el cual se pueden hacer operaciones)"
Gracias!
  #2 (permalink)  
Antiguo 24/08/2012, 11:32
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 3 meses
Puntos: 94
Respuesta: Problema de cadena de caracteres

Hola! tenes la funcion atof de la libreria stdlib para hacer eso


Saludos
  #3 (permalink)  
Antiguo 24/08/2012, 14:23
 
Fecha de Ingreso: julio-2012
Mensajes: 133
Antigüedad: 11 años, 9 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
  #4 (permalink)  
Antiguo 27/08/2012, 19:05
Avatar de cronopiomx  
Fecha de Ingreso: mayo-2012
Ubicación: Programing Cloud
Mensajes: 282
Antigüedad: 11 años, 11 meses
Puntos: 28
Respuesta: Problema de cadena de caracteres

si no la programas tu entonces atof te ayuda....

s2
cronos

#include <iostream>
#include <string.h>
using namespace std;

int main ()
{
char a[] = "458.245";

float x = atof( a );

cout<<x <<endl;




system("pause");
}

Etiquetas: programas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:18.