Convertir Cadena de caracteres en un float

#1
Hola a todos!

Necesito saber si hay alguna función o algo que me realice lo siguiente:

Tengo una cadena de caracteres declarada con "unsigned char cad[4], por ejemplo" y en cada una de esas 4 posiciones existirá un valor. Pues bien, necesito unir los 4 valores esos para formar una sola variable de tipo "float".
He estado mirando y existen funciones como atoi(convierte cadena Char en Int), atof(convierte cadena Char en double) y atol(convierte cadena Char en long), pero no he visto ninguna función que convierta Unsigned Char(que no Char solamente) a float.

Espero que me echéis una mano.

Un saludo.
 
#2
usa atof. Si es una cadena char q contiene "Numeros" es decir simbolos, no hay problema.
saludos
 
#3
Es que el problema es que con atof, tengo que usar la cadena de caracteres con el tipo char, y el que necesito usar es unsigned char, si no no me funciona...y con unsigned char, la función atof no funciona...¿alguna otra posibilidad?
 
#4
atof no funciona porque la cadena no tiene un cero al final, no porque sea unsigned char.

Declara "unsigned char cad[5]" y usa los primeros 4 bytes para los caracteres y en el 5to dejas con un cero ( cad[4]=0 )
Despues llamas atof(cad) .
 

Dr. Zoidberg

Well-known-Papá Pitufo
#5
Eduardo dijo:
atof no funciona porque la cadena no tiene un cero al final, no porque sea unsigned char.

Declara "unsigned char cad[5]" y usa los primeros 4 bytes para los caracteres y en el 5to dejas con un cero ( cad[4]=0 )
Despues llamas atof(cad) .
Aparte de eso, es probable que tenga un warning de tipo incorrecto, así que creo que es necesario castear el argumento (aparte de agregarle el '\0'). Algo como atof( (char *)cad)

De todas formas, siempre es mas simple usar un sscanf, pero bue....

Saludos!
 

Temas similares

Arriba