Arduino string

Las cadenas de texto se pueden representar de dos maneras. puede usar el tipo de datos String, que forma parte del núcleo a partir de la versión 0019, o puede crear una cadena a partir de una matriz de tipo char y terminarla en nulo. Esta página describe el último método. Para obtener más detalles sobre el objeto String, que le brinda más funcionalidad al costo de más memoria, consulte la página del objeto String.

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

Comentarios

Para dejar el comentario solo necesitamos tu correo que registraste en la pagina, pero si aun no te haz registrado se creara el usuario automaticamente.

Detalle contenido

arduino string
Generic placeholder image
Oscar Fernandez Alzate

13, Mayo 2019

128
Categorías
ARDUINO