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数组中。

示例如下:

  1. float f= 3.1415;
  2. char c[];
  3. dtostrf(f, 1, 2, c);
  4. Serial. println( c);
    此时从Arduino自带串口监视器中将输出3.14,即成功实现了数据类型转换。

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

    1. float f= 3.1415;
    2. char c[];
    3. dtostrf(f, 1, 2, c);
    4. Serial. println( c);
    5. //定义一个字符串
    6. char s[]= "///sensor1///ly///sensor1///PM2.5///100.70///";
    7. //进行字符串拼接操作
    8. strcat(s, c);
    9. Serial. println(s);

    int -char的方法:

    代码如下:

    1. void setup() {
    2. // put your setup code here, to run once:
    3. Serial.begin( 9600);
    4. int number = 12;
    5. char string[ 25];
    6.  itoa(number, string, 10);
    7. Serial.println( string);
    8.   char s[] = "ababababbaabababab";
    9. strcat(s, string);
    10. Serial.println(s);
    11. }
    12. void loop() {
    13. // put your main code here, to run repeatedly:
    14. }

     



    字符'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++中,字符和整型是一样的,可以隐式转换

    1. void setup() {
    2. // put your setup code here, to run once:
    3. Serial.begin( 9600);
    4. int number = 12;
    5. char string[ 25];
    6.  itoa(number, string, 10);
    7. Serial.println( string);
    8.   char s[] = "ababababbaabababab";
    9. strcat(s, string);
    10. Serial.println(s);
    11. }
    12. void loop() {
    13. // put your main code here, to run repeatedly:
    14. }

     



    字符'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++中,字符和整型是一样的,可以隐式转换