Reference   Language (extended) | Libraries | Comparison | Changes

string

Descripción

Los strings se representan como arrays de caracteres (tipo char) que terminan con el caracter NULL.

Ejemplos

Todas las siguientes son declaraciones válidas de strings.

  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 declaraciónd e strings

  • Declarar un array de caracteres sin incializarlo como en Str1
  • Declarar un array de caracteres (con un caracter extra) y el compilador añadirá el caracter NULL requerido, como en STR2
  • Explicitar el caracter NULL, Str3
  • Inicializar con un string constante entre comillas dobles; el compilador medirá el tamaño del array para ajustar el string constante y caracter NULL para finalizar, Str4
  • Inicializar el array con un tamaño explícito y un string constante, Str5
  • Inicializar el array, dejando un espacio extra para un string más largo, Str6

Terminación NULL

Generalmente, los strings se finalizan con un caracter NULL (código ASCII 0). Esto permite a funciones (como Serial.print()) establecer dónde está el final del string. De otra forma, seguiría leyendo los siguientes bytes de la memoria que no forman parte del string.

Esto significa que tu string necesita tener espacio para un caracter más del texto que quieres que contenga. Esto es por lo que Str2 y Str5 necesitan 8 caracteres, incluso aunque "arduino" tenga sólo 7 - la última posición es automáticamante completada con un caracter NULL. Str4 será automáticamente dimensionada a 8 caracteres, uno para el NULL extra. En Str3, hemos incluido nosotros mismos el caracter NULL (escrito como '\0').

Ten en cuenta que es posible tener un string sin un caracter NULL al final (p.e. si tú has especificado la longitud de Str2 como 7 en lugar de 8). Esto romperá la mayoría de funciones que usen strings, por lo que no deberías hacerlo intencionadamente. Por lo tanto, si detectas algún comportamiento extraño (operando con los caracteres, no con el string), este podría se el problema

Comillas simples o dobles

Los string siempre se definen entre comillas dobles ("Abc") y los caracteres siempre se definen dentro de comillas simples ('A').

Envolviendo string largos

Puedes envolver strings largos de ésta manera:

char miString[] = "Esta es la primera linea"
" esta es la segunda linea"
" etcetera";

Arrays de strings

Amenudo es conveniente, al trabajar con grandes cantidades de texto, como proyectos con displays LCD, configurar un array de strings. Como los strings son en sí mismo arrays, esto es un ejemplo real de un array bidimensional.

En el código de abajo, el asterisco después del tipo de dato char "char*" indica que es un array de "punteros". Todos los nombres de arrays son punteros, por lo que esto es necesario para crear un array de aarys. Los punteros son una de las partes más exotéricas de C como para que los principieantes puedan llegar a entenderlas, pero no es necesario entender punteros en detalle para usarlos con efectividad.

Ejemplo


char* miStrings[]={"Este es el string 1", "Este es el string 2", "Este es el string 3",
"Este es el string 4", "Este es el string 5","Este es el string 6"};

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

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

Ver también

Página principal Referencia

Correcciones, sugerencias, y nueva documentación deberán ser publicadas en el Foro (castellano) o en el Foro (inglés).

El texto de la referencia de Arduino está publicado bajo la licencia Creative Commons Reconocimiento-Compartir bajo la misma licencia 3.0. Los ejemplos de código de la referencia están liberados al dominio público.

Share