1. 程式人生 > >C語言中int,duoble資料轉換為char型別

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。

  備註:

該函式的標頭檔案是"stdlib.h"

  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"