string
Contenido
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
- Declarar una matriz de caracteres inicializandola. Ver cadena1.
- Declarar una matriz de caracteres (con un carácter extra) y el compilador añadirá el carácter nulo requerido. Ver cadena2.
- Agregar explicitamente el caracter nulo. Ver cadena3.
- 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.
- Incializar una matriz con un tamaño explícito y una constante de cadena. Ver cadena5.
- 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);
}
Ejemplo 3
Convertir un char array' en long.
char* texto = "-12345";
void setup(){
Serial.begin(9600);
long valor;
valor = atol(texto);
DEBUG(valor);
}
void loop(){
//Nada.
}