2013年5月27日 星期一

嵌入式c 數字轉字串 字串轉數字

數字轉字串:
網路上查到數字轉字串的方法,可以使用C的標準函式庫stdlib.h函式  char * itoa ( int value, char * str, int base );
強調一點這個函式算是window系統下特例的函式 無法跨平台使用.

所以使用stdio.h 另外兩個函式 printf ()  & sprintf() or snprintf()
1. int printf ( const char * format, ... );
對 標準輸出裝置stdout (如螢幕) 的格式化輸出,在x86 的PC平台上 標準輸出(stdout)都是Monitor.
而在嵌入式平台則要看complier設定,一般都要動到很底層的code 工程浩大.


2  .int sprintf ( char * str, const char * format, ... );.
將格式化的輸出結果存入 字串變數(如 str ),也就是說字串結果存到自訂 buffer 中,
之後再用自訂函數 putuart() 之類的,把buffer的data,看要傳到uart 或其他週邊使用.



3. int snprintf ( char * s, size_t n, const char * format, ... );
snprintf() 類似 sprintf(),只是多了一個size參數;這個參數的用處,就是用來限制最大的寫入資料量,可以用來避免 buffer overflow。



字串轉數字
C標準函式庫中stdlib.h中

1. double atof (const char* str);  將數字字串轉後成 double 型態的數字

2.int atoi (const char * str); 將數字字串轉後成 int 型態的數字

3.long int atol ( const char * str );

4.long long int atoll ( const char * str );

5.double strtod (const char* str, char** endptr);將字串中的數字轉換成 double 型態的數字,非數字部份以另一字串儲存

6.long int strtol (const char* str, char** endptr, int base);將字串中的數字轉換成 long 型態的數字,非數字部份以另一字串儲存

沒有留言:

張貼留言