2012-02-08 75 views
-1

对不起,如果它之前已经问过,但我真的无法找到明确的答案这个问题。 请告诉我,什么是转换的最快方法:c - 将char *数组转换为int和float的最有效方法是什么?

char * array to int 
char * array to float 

的char *数组存储号码,例如:

"12345" 
"1234,56789" 

如果用于x86和x64系统上的最快的方式是不同的,请告诉他们两人。

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

+1

试着看着atoi()和atof()。我只是想知道谷歌如何错过了一个? – Mithrandir 2012-02-08 18:10:13

+0

我知道一些方法,但我需要最快的方式 - 对于处理大块数据很有用。 – 2012-02-08 18:11:27

回答

9

开始的atoi()和ATOF(),测量速度,决定它是否是一个问题 - 然后寻找一个解决方案

编辑 - 它几乎肯定的是,I/O将主宰任何时间花在做转换。如果转换时间很重要(在配置文件之后),那么如果您知道格式即。整型总是4digits,彩车总有5位小数,你也许可以写一个手调整例程确实比标准库更好

2

你可以使用

atoi() 

的整数和

atof() 

浮标。

1

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

对于float,它要复杂得多。如果你不关心结果是否正确,那么类似的小循环也很好。如果你需要确切的结果,你会想要使用strtodatof或类似的,因为滚动你自己是非常困难的。

相关问题