Arduino string


En Arduino, una variable de tipo String es una variable que almacena una secuencia de caracteres de texto

oscar Escrito por oscar 13 May 2019 4049 0

 

En Arduino, una variable de tipo String es una variable que almacena una secuencia de caracteres de texto. Es una forma conveniente de manipular y trabajar con texto en programas Arduino. La clase String en Arduino proporciona una serie de métodos y funciones que facilitan la manipulación de cadenas de caracteres, como la concatenación, comparación, búsqueda y extracción de subcadenas, entre otras operaciones.

Sintaxis

Todas las siguientes son declaraciones válidas para cadenas.

char Str1[15];
char Str2[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o'};
char Str3[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o', '\0'};
char Str4[] = "arduino";
char Str5[8] = "arduino";
char Str6[15] = "arduino";

Posibilidades de declarar cuerdas

  • Declare un conjunto de caracteres sin inicializarlo como en Str1
  • Declare una matriz de caracteres (con un carácter adicional) y el compilador agregará el carácter nulo requerido, como en Str2
  • Agregue explícitamente el carácter nulo, Str3
  • Inicializar con una cadena constante entre comillas; el compilador dimensionará la matriz para que se ajuste a la constante de cadena y un carácter nulo de terminación, Str4
  • Inicialice la matriz con un tamaño explícito y una constante de cadena, Str5
  • Inicialice la matriz, dejando espacio adicional para una cadena más grande, Str6

Terminación nula

Generalmente, las cadenas terminan con un carácter nulo (código ASCII 0). Esto permite que las funciones (como Serial.print()) digan dónde está el final de una cadena. De lo contrario, continuarían leyendo bytes de memoria posteriores que no son realmente parte de la cadena.

Esto significa que su cadena debe tener espacio para un carácter más que el texto que desea que contenga. Es por eso que Str2 y Str5 deben tener ocho caracteres, aunque "arduino" solo tiene siete, la última posición se llena automáticamente con un carácter nulo. Str4 se ajustará automáticamente a ocho caracteres, uno para el nulo adicional. En Str3, hemos incluido explícitamente el carácter nulo (escrito '\ 0') nosotros mismos.

Tenga en cuenta que es posible tener una cadena sin un carácter nulo final (por ejemplo, si ha especificado la longitud de Str2 como siete en lugar de ocho). Esto romperá la mayoría de las funciones que usan cadenas, por lo que no debe hacerlo intencionalmente. Sin embargo, si observa que algo se comporta de manera extraña (que opera con caracteres que no están en la cadena), este podría ser el problema.

¿Comillas simples o dobles?

Las cadenas siempre se definen entre comillas dobles ("Abc") y los caracteres siempre se definen entre comillas simples ('A').

Envolver cuerdas largas

Puedes envolver cuerdas largas como esta:

char myString[] = "This is the first line"
" this is the second line"
" etcetera";

Arreglos de string

A menudo es conveniente, cuando se trabaja con grandes cantidades de texto, como un proyecto con una pantalla LCD, para configurar una serie de cadenas. Debido a que las cadenas son matrices, esto es en realidad un ejemplo de una matriz bidimensional.

En el código a continuación, el asterisco después del tipo de datos char"char *" indica que se trata de una matriz de "punteros". Todos los nombres de matriz son en realidad punteros, por lo que se requiere para hacer una matriz de matrices. Los punteros son una de las partes más esotéricas de C ++ para los principiantes, pero no es necesario entenderlos en detalle para usarlos de manera efectiva aquí.

Ejemplo

char *myStrings[] = {"This is string 1", "This is string 2", "This is string 3",
                     "This is string 4", "This is string 5", "This is string 6"};

void setup() {
  Serial.begin(9600);
}

void loop() {
  for (int i = 0; i < 6; i++) {
    Serial.println(myStrings[i]);
    delay(500);
  }
}

Referencias

[1]arduino https://www.arduino.cc/reference/en/language/variables/data-types/string/, Consultado mayo 2019


Comentario

Debe aceptar antes de enviar