Diferencia entre revisiones de «string»

De ArduWiki
Saltar a: navegación, buscar
(Sintaxis)
Línea 8: Línea 8:
 
char nombre[] = {valor1, valor2...};
 
char nombre[] = {valor1, valor2...};
 
char nombre[] = "valor";
 
char nombre[] = "valor";
 +
char* variable = "valor";
 
</pre>
 
</pre>
  

Revisión del 18:31 28 jun 2018

Descripción

En realidad string o cadena de caracteres no es un tipo de dato y se construye como una matriz de tipo char con terminación nula.

Las cadenas deben terminar con un carácter nulo (ASCII código 0). Esto permite que funciones como Serial.print() sepan donde terminan las cadenas. De lo contrario, seguirían leyendo los siguientes bits de memoria que ya no pertenece a esa cadena. Esto significa que la cadena tiene que tener espacio para un carácter más que el texto que desea que contenga.

Sintaxis

char nombre[] = {valor1, valor2...};
char nombre[] = "valor";
char* variable = "valor";

Parametros

nombre
es el nombre de la variable.
valor1
debe ir entre comillas simples. Cada uno.
valor
es una sola cadena de caracteres entre comillas dobles.

Advertencia

  • Tenga en cuenta, que las matrices de caracteres se conocen como string con s minúscula y las instancias de la 'clase String se denominan cadenas con S mayúscula.
  • Tenga en cuenta que, las constantes de cadena especificadas con "comillas dobles" son tratadas como matrices de char y no como la clase String.
  • No confundir con la clase String, que forma parte del núcleo a partir de la versión 0019 y es necesario la instancia osea crear un objetos, pero la ventaja es que luego hay muchos métodos disponibles.
  • Los datos tipo char deben ser definidos siempre usando comillas simples. Ver cadena1, cadena2 y cadena3 en ejemplo 1.
  • Es posible crear cadenas como matriz de caracteres usando comillas dobles. Ver cadena4, cadena5 y cadena6 en ejemplo 1.

Ejemplo 1

Posibilidades para la declaración de cadenas

  1. Declarar una matriz de caracteres inicializandola. Ver cadena1.
  2. Declarar una matriz de caracteres (con un carácter extra) y el compilador añadirá el carácter nulo requerido. Ver cadena2.
  3. Agregar explicitamente el caracter nulo. Ver cadena3.
  4. Inicializar una constante de cadena entre comillas; el compilador ajustará el tamaño de la matriz para adaptarse a la cadena y un carácter nulo de terminación. Ver cadena4.
  5. Incializar una matriz con un tamaño explícito y una constante de cadena. Ver cadena5.
  6. Inicializar la matriz, dejando espacio extra para una cadena larga. Ver cadena6.
char cadena1[15];
char cadena2[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o'};
char cadena3[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o', '\0'};
char cadena4[ ] = "arduino";
char cadena5[8] = "arduino";
char cadena6[15] = "arduino";

Ejemplo 2

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 usarlos de la manera aquí descrita.

char* fraces[] = {
   "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(115200);
}
void loop(){
   for (byte i=0; i<6; i++){
      Serial.println(fraces[i]);
   }
   delay(500);
}

Vea también