char数组转为整型或浮点型

 
  
比如一个数组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安全,
具体的你可以查他们的用法,我讲起来就有点复杂了

你可能感兴趣的:(char数组转为整型或浮点型)