C語言中int,duoble資料轉換為char型別
前幾天在做彩屏顯示的時候,我遇到一個把變數輸入到彩屏的問題,其中有的變數是int或者double的,但是彩屏廠商提供的庫函式只有顯示字元的傳送函式,所以我就在想能不能把int或者double的強制轉換成char型別的進行顯示;
在網上找到了一些,有的能用,有的不能用,所以我總結了以下:
Int 、double 轉換為char 我利用Sprintf();
格式為:sprintf(str,”%d”,aaa);
其中:str是轉換完成後,字元儲存的字元陣列;
%d是要轉換資料型別,int的為%d,double的是%f
aaa為待轉換的int或者double資料;
注:要用這個函式的時候需要新增標頭檔案#include <stdio.h>,不然有可能出錯誤。
以下是我們在標準C語言中常用到的:
1、itoa
功 能:把一整數轉換為字串
用 法:char *itoa(intvalue, char *string, int radix);
其中: value: 待轉化的整數。
radix: 是基數的意思,即先將value轉化為radix進位制的數,範圍介於2-36,比如10表示10進位制,16表示16進位制。
* string: 儲存轉換後得到的字串。
返回值:
char * : 指向生成的字串,同*string。
備註:該函式的標頭檔案是"stdlib.h"
2、ltoa
功 能:
用 法:char *ltoa(longvalue, char *string, int radix);
詳細解釋:itoa是英文long integer to array(將long int長整型數轉化為一個字串,並將值儲存在陣列string中)的縮寫.
引數:
value: 待轉化的長整型數。
radix: 是基數的意思,即先將value轉化為radix進位制的數,範圍介於2-36,比如10表示10進位制,16表示16進位制。
* string: 儲存轉換後得到的字串。
返回值:
char * : 指向生成的字串,同*string。
備註:
3、ultoa
功 能:把一無符號長整形轉換為字串
用 法:char*ultoa(unsigned long value, char *string, int radix);
詳細解釋:itoa是英文unsigned long integer to array(將unsignedlong int無符號長整型數轉化為一個字串,並將值儲存在陣列string中)的縮寫.
引數:
value: 待轉化的無符號長整型數。
radix: 是基數的意思,即先將value轉化為radix進位制的數,範圍介於2-36,比如10表示10進位制,16表示16進位制。
* string: 儲存轉換後得到的字串。
返回值:
char * : 指向生成的字串,同*string。
備註:該函式的標頭檔案是"stdlib.h"
4、gcvt
功 能:把浮點型數轉換為字串,取四捨五入
用 法:char *gcvt(doublevalue, int ndigit, char *buf);
詳細解釋:gcvt()用來將引數number轉換成ASCII碼字串,引數ndigits表示顯示的位數。gcvt()與ecvt()和fcvt()不同的地方在於,gcvt()所轉換後的字串包含小數點或正負符號。若轉換成功,轉換後的字串會放在引數buf指標所指的空間。
參 數:
value:待轉化的浮點數。
ndigit:儲存的有效數字位數。
*buf:結果的儲存位置。
返回值:
char * :指向生成的字串,同*buf。
備註:該函式的標頭檔案是"stdlib.h"
5、ecvt
功 能:將雙精度浮點型數轉換為字串,轉換結果中不包括十進位制小數點
用 法:char *ecvt(doublevalue, int ndigit, int *decpt, int *sign);
詳細解釋:ecvt函式把一個雙精度浮點數轉換成一個字串。value引數是要轉換的浮點數。這個函式儲存最多ndigit個數字值作為一個字串,並新增一個空數字符('\0'),如果value中的數字個數超過ndigit,低位數字被舍入。如果少於ndigit個數字,該字串用0填充。
只有數字才儲存在該字串中,小數點位置和value符號在呼叫之後從decpt和sign獲取。decpt引數指出給出小數點位置的整數值,它是從該字串的開頭位置計算的。0或負數指出小數點在第一個數字的左邊。sign引數指出一個指出轉換的數的符號的整數。如果該整數為0,這個數為正數,否則為負數。
參 數:
value:待轉換的雙精度浮點數。
ndigit:儲存的有效數字位數。
*decpt:儲存的小數點位置。
*sign:轉換的數的符號。
返回值:
char*:指向生成的字串。
備註:該函式的標頭檔案是"stdlib.h"
6、fcvt
功 能:指定位數為轉換精度,其餘同ecvt
用 法:char *fcvt(doublevalue, int ndigit, int *decpt, int *sign);
詳細解釋:fcvt函式把一個雙精度浮點數轉換成一個字串。value引數是要轉換的浮點數。參與轉換的實際值保留的小數位數由ndigit決定。
只有數字才儲存在該字串中,小數點位置和value符號在呼叫之後從decpt和sign獲取。decpt引數指出給出小數點位置的整數值,它是從該字串的開頭位置計算的。0或負數指出小數點在第一個數字的左邊。sign引數指出一個指出轉換的數的符號的整數。如果該整數為0,這個數為正數,否則為負數。
參 數:
value:待轉換的雙精度浮點數
ndigit:轉換的字串中包含小數點後幾位
*decpt:返回小數點在串中的位置
*sign:符號標誌。
返回值:
char*:指向生成的字串。
備註:該函式的標頭檔案是"stdlib.h"