Convertir Cadena de caracteres en un float

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.
 
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?
 
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) .
 
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!
 
Atrás
Arriba