string

Descripción

Las cadenas de texto pueden ser representadas de dos formas. se puede usar el tipo de datos String, que forma parte del núcleo a partir de la versión 0019, o se puede hacer una cadena de una matriz de tipo char y terminación nula. Esta página decribe el último método. Para más detalles sobre el objeto string, que le da más funcionalidad a cambio de más uso de memoria, ver la página String object.

Sintaxis

Todas las declaraciones siguientes son 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 para la declaración de cadenas

  • Declarar una matriz de caracteres inicializandola como Str1
  • Declarar una matriz de caracters (con un caracter extra) y el compilador añadirá el caracer nulo requerido, como Str2
  • Agregar explicitamente el caracter nulo, Str3
  • Inicializar una constante de cadena entre comillas; el compilador ajustará el tamaño de la matriz para adaptarse a la cadena y un caracter nulo de terminación, Str4
  • Incializar una matriz con un tamaño explícito y una constante de cadena, Str5
  • Inicializar la matriz, dejando espacio extra para una cadena larga, Str6

Null termination

Generalmente. las cadenas terminan con un carácter nulo (ASCII código 0). Esto permite que las funciones (como Serial.print()) sepan donde terminan las cadenas. De lo contrario, seguirían leyendo los siguientes bits de memoria que no son, en relidad, parte de la cadena.

Esto significa que la cadena tiene que tener espacio para un carácter más que el texto que desea que contenga. Por eso Str2 y Str5 deben tener ocho caracteres, a pesar de que "Arduino" tiene sólo siete - la última posición se rellena automáticamente con un carácter nulo. Str4 tomará el tamaño automáticamente a ocho caracteres, uno para el caracter extra nulo adicional. En Str3, hemos incluido explícitamente el carácter nulo (escrito '\ 0') por 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 interrumpirá la mayoría de las funciones que utilizan cadenas, por lo que no debería hacerlo intencionalmente. Si usted nota que algo se comporta de forma extraña (que opera en caracteres no en la cadena), esto podría ser el problema.

¿Comillas sencillas o dobles?

Las cadenas siempre están definidas dentro de comillas dobles ("Abc") y los caracteres está siempre definidos dentro de comillas simples ('A').

Envolviendo cadenas largas

Puede envolver cadenas largas de esta forma:

char myString[] = "Esta es la primera línea" " esta es la segunda línea" " etcetera";

Matrices de cadenas

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

En el código siguiente, el asterisco después del tipo de datos char "char *" indica que se trata de una matriz de "punteros". Todos los nombres de matrices son en realidad punteros, así que esto es necesario para hacer una matriz de matrices. Los punteros son una de las partes más esotéricas de C para que los principiantes puedan entender, pero no es necesario entender los punteros en detalle para utilizarlos de manera efectiva aquí.

Ejemplo

char* myStrings[] = {"Esta es la cadena 1", "Esta es la cadena 2", "Esta es la cadena 3", "Esta es la cadena 4", "Esta es la cadena 5", "Esta es la cadena 6" }; void setup() { Serial.begin(9600); } void loop() { for (int i = 0; i < 6; i++) { Serial.println(myStrings[i]); } delay(500); }

The result on Serial Monitor:

COM6
Send
Esta es la cadena 1 Esta es la cadena 2 Esta es la cadena 3 Esta es la cadena 4 Esta es la cadena 5 Esta es la cadena 6 Esta es la cadena 1 Esta es la cadena 2 Esta es la cadena 3 Esta es la cadena 4 Esta es la cadena 5 Esta es la cadena 6
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

ARDUINO BUY RECOMMENDATION

Arduino UNO R3
Arduino Starter Kit
Please note: These are Amazon affiliate links. If you buy the components through these links, We will get a commission at no extra cost to you. We appreciate it.

※ OUR MESSAGES