C语⾔中int,duoble数据转换为char类型
前⼏天在做彩屏显⽰的时候,我遇到⼀个把变量输⼊到彩屏的问题,其中有的变量是int或者double的,但是彩屏⼚商提供的库函数只有显⽰字符的发送函数,所以我就在想能不能把int或者double的强制转换成的进⾏显⽰;
在⽹上到了⼀些,有的能⽤,有的不能⽤,所以我总结了以下:
Int 、double 转换为char 我利⽤Sprintf();
格式为:sprintf(str,”%d”,aaa);
其中:str是转换完成后,字符存储的字符数组;
%d是要转换数据类型,int的为%d,double的是%f
aaa为待转换的int或者double数据;
注:要⽤这个函数的时候需要添加头⽂件#include <stdio.h>,不然有可能出错误。
以下是我们在标准C语⾔中常⽤到的:
  1、itoa
  功 能:把⼀整数转换为字符串
⽤ 法: *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: 待转化的长整型数。c++string类型
  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()⽤来将参数转换成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"

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。