2015年9月10日 星期四

integer <--> char string, float(double) <--> char string

integer -> char string
char * itoa ( int value, char * str, int base );
http://www.cplusplus.com/reference/cstdlib/itoa/

char string -> integer
int atoi (const char * str);
http://www.cplusplus.com/reference/cstdlib/atoi/


float(double) -> char string
char * gcvt ( double value, int ndigits, char * buffer );
http://www.kev.pulo.com.au/pp/RESOURCES/cplusplus/ref/cstdlib/gcvt.html
說明:gcvt()將num轉成ASCII code,ndigits顯示位數。
gcvt()與ecvt()和fcvt()不同的地方在於,gcvt()轉換後的字串包含小數點或正負符號。

char * ecvt(double value, int ndigit, int *decpt, int *sign);
char * fcvt(double value, int ndigit, int *decpt, int *sign);
說明:ecvt把double轉成字串。value要轉換的double,儲存最多ndigit個char,並加('\0')作結尾。如果value數字個數超過ndigit,低位數字被捨入。如果少於ndigit個數字,以'0'填滿。
  只有數字才存儲在該字串中,小數點位置和+-,會存在decpt和sign中。decpt指小數點位置,0或負數指出小數點在第一個數字的左邊。sign指正負符號,正數或0,sign為正數,否則為負數。

  fcvt() 和 ecvt() 的一個不同的地方是第 2 個參數表示的是小數點後顯示的位數,它的轉換也是四捨五入的。fcvt()->全部顯示幾個位數,ecvt()->小數點後面幾個位數


char string -> float(double)
double atof (const char* str);
http://www.cplusplus.com/reference/cstdlib/atof/

沒有留言:

張貼留言