Saltar al contenido

Convertir un int o String en un char array en arduino

Recuerda que en las ciencias cualquier problema casi siempre tiene diversas resoluciones, pero aquí mostramos lo más óptimo y eficiente.

Solución:

  1. Para convertir y agregar un número entero, use operador += (o función miembro concat):

    String stringOne = "A long integer: ";
    stringOne += 123456789;
    
  2. Para obtener el string como tipo char[]utilice toCharArray():

    char charBuf[50];
    stringOne.toCharArray(charBuf, 50)
    

En el ejemplo, solo hay espacio para 49 caracteres (suponiendo que termine con null). Es posible que desee hacer que el tamaño sea dinámico.

Gastos generales

El costo de traer String (no se incluye si no se usa en ninguna parte del boceto), tiene aproximadamente 1212 bytes de memoria de programa (flash) y 48 bytes de RAM.

Esto se midió utilizando Arduino IDE versión 1.8.10 (2019-09-13) para un boceto de Arduino Leonardo.

Solo como referencia, aquí hay un ejemplo de cómo convertir entre String y char[] con una longitud dinámica –

// Define 
String str = "This is my string"; 

// Length (with one extra character for the null terminator)
int str_len = str.length() + 1; 

// Prepare the character array (the buffer) 
char char_array[str_len];

// Copy it over 
str.toCharArray(char_array, str_len);

Sí, esto es dolorosamente obtuso para algo tan simple como una conversión de tipos, pero lamentablemente es la forma más fácil.

Puede convertirlo a char* si no necesita un modificable string mediante el uso:

(char*) yourString.c_str();

Esto sería muy útil cuando desee publicar una variable de cadena a través de MQTT en arduino.

Acuérdate de que tienes la capacidad de valorar esta crónica si diste con el resultado.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *