我需要將字符串(如「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狀態機。也許這只是我.. :) –