在C中怎么将字符类型的数字转换成float类型的

在C中如何将字符类型的数字转换成float类型的
char   c= '4 ';
float   e=(float)c;
我的目标是e=4.0,这样可以实现吗?如果不能,转换过来的e是什么东西呢?
另外,还需要什么头文件吗?有系统函数吗?

------解决方案--------------------
#include <stdlib.h>
......
char c= '4 ';
float e=atof(&c);
------解决方案--------------------
char c= '4 ';
float f = 0.0+c- '0 ';
printf( "%.1f ",f);

e=4.00跟e=4.0对计算机貌似没啥意思吧,这个只不过是个输出效果而已
------解决方案--------------------


函数名: atof
功 能: 把字符串转换成浮点数
用 法: double atof(const char *nptr);
程序例:

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
double f;
char *str = "12345.67 ";

f = atof(str);
printf( "string = %s float = %f\n ", str, f);
return 0;
}