我需要将字符串(如“3.456”)转换为不带atof()或任何其他字符串操作函数的float类型。下面是我的代码,它适用于c字符串到int的转换,但显然由于句点而不能用于float。我需要添加什么来处理这段时间?谢谢。C字符串浮点转换
#include <stdio.h>
int size;
char string[] = "345";
int result = 0;
int i = 0;
int findLength(char string[]){
for(size = 0; string[size]!='\0'; size++){
}
return size;
};
void conversion(char string[]){
result = result * 10 + (string[i] - '0');
if (i < size - 1) {
i++;
conversion(string);
}
}
int main(int argc, const char * argv[]) {
findLength(string);
conversion(string);
printf("%d\n", result);
return 0;
}
正确执行此操作需要几千行代码。 –
大量关于interwebs的例子,例如[atof.c](http://www.opensource.apple.com/source/python/python-3/python/Python/atof.c) –
我会用char-by-char状态机。也许这只是我.. :) –