c - 将char *数组转换为int和float的最有效方法是什么?

时间:2012-02-08 18:08:13

标签: c

很抱歉,如果之前已经问过,但我真的找不到这个问题的明确答案。 请告诉我,最快的转换方式是什么:

char * array to int
char * array to float

char *数组存储一个数字,例如:

"12345"
"1234,56789"

如果x86和x64系统的最快方式不同,请告诉他们两个。

编辑:“最快”,我的意思是“最有效”,而不是“最简单易用”。

3 个答案:

答案 0 :(得分:9)

从atoi()和atof()开始,测量速度,确定是否有问题 - 然后寻找解决方案

编辑 - 它几乎确定I / O将占用转换所花费的任何时间。如果转换时间确实很重要(在您分析后),那么如果您知道格式即。 int总是4digits,浮点数总是有5个小数位,你可能能编写一个比标准lib更好的手动调整程序

答案 1 :(得分:2)

你可以使用

atoi()

用于整理和

atof()

用于花车。

答案 2 :(得分:1)

对于int,明显的循环可能是最快的。

对于float,它要复杂得多。如果您不关心结果是否正确,那么同样简单的循环也可以。如果您需要确切的结果,则需要使用strtodatof或类似内容,因为自己滚动非常困难。