比如一个数组n[100]中存储了如 n[0]=2134 n[1]=kjsg ..... 得数 那么我想将其中所有数据转化为浮点型数据,并存储到另外一个数组, 请问如何使用atof函数,麻烦帮忙写一下这块的格式谢谢!
首先你要了解atof的prototype:
double atof(const char *str); 和atoi一样,函数的参数类型必须是char *, 而如果字符串里面没有可以转换的数字, 比如"abcd"的话,那么atof( "abcd" )将返回一个任意值。 而对于atoi,返回0 特别对于atoi,如果字符串为“0”的话,也会返回0, 所以不能判断字符串中是否含有0。 而对于atof,在WIKI里写到 “If the string is not a valid textual representation of a double, atof will silently fail, returning a random value” 所以更为危险。 所以不是什么值都可以转化为你要的数据类型的, 当然在内存里都是以0,1储存的,没有类型这个概念, 而我们可以使用各种类型,其实是编译器的功劳。 对于atoi和atof, 有新的函数可以替代 atoi可以用strtol替代, 而atof可以用strtod等替代 strtol比atoi安全, 具体的你可以查他们的用法,我讲起来就有点复杂了