Arduino 传输数据类型转换

  ● itoa():将整型值转换为字符串。

  ● ltoa():将长整型值转换为字符串。

  ● ultoa():将无符号长整型值转换为字符串。

  ● gcvt():将浮点型数转换为字符串,取四舍五入。

  ● ecvt():将双精度浮点型值转换为字符串,转换结果中不包含十进制小数点。

  ● fcvt():指定位数为转换精度,其余同ecvt()。

  ● atof():将字符串转换为双精度浮点型值。

  ● atoi():将字符串转换为整型值。

  ● atol():将字符串转换为长整型值。

  ● strtod():将字符串转换为双精度浮点型值,并报告不能被转换的所有剩余数字。

  ● strtol():将字符串转换为长整值,并报告不能被转换的所有剩余数字。

  ● strtoul():将字符串转换为无符号长整型值,并报告不能被转换的所有剩余数字。

同时可以根据字符和数字之间的对应关系自己写函数(不调用库函数)实现字符串与数值之间的转换:

式如下:

char* dtostrf(double _val,signed char _width, unsigned char prec, char* _s)

参数说明:

_val:要转换的float或者double值。

_width:转换后整数部分长度。

_prec:转换后小数部分长度。

_s:保存到该char数组中。

示例如下:

float f=3.1415;

char c[];

dtostrf(f,1,2,c);

Serial.println(c);

此时从Arduino自带串口监视器中将输出3.14,即成功实现了数据类型转换。

数据转换之后,我们可以对字符串进行一个拼接。如下,将实现字符串的拼接

float f=3.1415;

char c[];

dtostrf(f,1,2,c);

Serial.println(c);

//定义一个字符串

char s[]="///sensor1///ly///sensor1///PM2.5///100.70///";

//进行字符串拼接操作

strcat(s,c);

Serial.println(s);

int -char的方法:

代码如下:

void setup() {

// put your setup code here, to run once:

Serial.begin(9600);

int number = 12;

char string[25];

itoa(number, string, 10);

Serial.println(string);

char s[] = "ababababbaabababab////";

strcat(s, string);

Serial.println(s);

}

void loop() {

// put your main code here, to run repeatedly:

}

字符'0'的ASCII码为48,然后是'1' '2' '3' ... '9'

字符' '(空格)的ASCII码为32.

字符'A'的ASCII码为65,然后是'B' 'C' ... 'Z'

字符'a'的ASCII码为97,然后是'b' 'c' ... 'z'

所以,把一个数字字符ch,转为一个整数,就是

ch-'0' 当然ch-48也行

因为C和C++中,字符和整型是一样的,可以隐式转换

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容