Resumen Sobre Las String Con Arduino
Resumen Sobre Las String Con Arduino
Cuando empiezas a programar con Arduino, muy rápidamente llegas al uso de las
cuerdas. Se utiliza una matriz de caracteres para almacenar el texto. Se utiliza, por
ejemplo, para mostrar texto en una pantalla LCD o para enviar un texto al monitor
en serie. Este es a menudo el primer ejemplo: enviar «Hello World!» en el monitor
de serie. Veremos en este tutorial los métodos de definición y los usos comunes de
este tipo de variable.
Hay diferentes maneras de definir caracteres en Arduino
matriz de caracteres de tipo char
El tipo String definido en la lengua Arduino
El tipo String es, de hecho, un matriz de caracteres que terminan con un carácter
nulo.
Cadena de caracteres
A lo largo de este tutorial, utilizaremos el ejemplo más utilizado en el mundo «Hello
World» y lo desglosaremos en detalle.
void setup() {
Serial.begin(9600);
Serial.println(str);
Serial.print("String length :");Serial.println(strlen(str));
Serial.print("Array length :");Serial.println(sizeof(str));
for(int i=0;i<sizeof(str);i++){
Serial.println(str[i]);
}
Serial.println(F(" end of string"));
}
void loop() {}
Gracias a este simple ejemplo, ya estamos anotando alguna información
interesante. El programa de Arduino añade un carácter nulo al final de la cadena.
Hello World!
String length :12
Array length :13
H
e
l
l
o
W
o
r
l
d
!
end of string
void setup() {
Serial.begin(9600);
Serial.println(str);
Serial.print("String length :");Serial.println(strlen(str));
Serial.print("Array length :");Serial.println(sizeof(str));
for(int i=0;i<sizeof(str);i++){
Serial.println(str[i]);
}
Serial.println(F("> end of string"));
}
void loop() {}
Hello World!
String length :12
Array length :12
H
e
l
l
o
W
o
r
l
d
!
> end of string
Cambiar una cadena de caracteres
El texto de una tabla de caracteres no puede ser cambiado de una vez, el nuevo
texto debe ser asignado carácter por carácter.
void setup() {
Serial.begin(9600);
Serial.println(F("Delete end of string"));
chars[6]=0;
Serial.println(chars);
Serial.println(F("Replace word"));
chars[6]='Y';
chars[7]='o';
chars[8]='u';
chars[9]=0;
Serial.println(chars);
Serial.print("String
length :");Serial.println(strlen(chars));
Serial.print("Array
length :");Serial.println(sizeof(chars));
for(int i=0;i<sizeof(chars);i++){
Serial.println(chars[i]);
}
Serial.println(F(" end of chars"));
}
void loop() {}
Y
o
u
d
!
end of chars
Concatenación
Otra forma de reemplazar un texto es usar la función strcat(), que permite añadir
una cadena al final de otra.
char chars[]="Hello World!";
void setup() {
Serial.begin(9600);
Serial.println(F("Delete end of string"));
chars[6]=0;
Serial.println(chars);
Serial.println(F("Concat word"));
strcat(chars,"You");
Serial.println(chars);
Serial.print("String
length :");Serial.println(strlen(chars));
Serial.print("Array
length :");Serial.println(sizeof(chars));
for(int i=0;i<sizeof(chars);i++){
Serial.println(chars[i]);
}
Serial.println(F(" end of chars"));
void loop() {}
}
void loop() {}
Hello You
String length :9
Array length :20
Hello World!
Copy
if(strcmp(chars,str)==0){
Serial.println("str and chars are the same");
}
void loop() {}
N.B. La prueba lógica equivalente «==» sólo funciona para caracteres individuales
(por ejemplo, char c=’c’; Serial.println(c==’c’);).
Funciones a recordar
tamaño de(str) para saber el tamaño de la matriz
strlen(str) para saber la longitud de una cadena en una matriz
strcat(str,str1) añadir str1 al final de str
strcopy(str1,str) copiar str en str1
strcmp(str,str1) para comparar dos matrices de caracteres
String Arduino
El objeto String está definido en el lenguaje Arduino y contiene un conjunto de
funciones prácticas para manipular las cuerdas.
Tamaño de un String
Para estudiar las cadenas utilizaremos dos funciones muy prácticas:
*str.length() para saber la longitud de un String
*sizeof para saber el tamaño de la variable
W
o
r
l
d
!
end of string
Modificación de un String
Modificar una palabra con el objeto String es mucho más simple que con la matriz
de caracteres.
void setup() {
Serial.begin(9600);
Serial.println(str);
Serial.println(F("Replace word"));
str.replace("World!","You");
Serial.println(str);
}
void loop() {}
Hello World!
Replace word
Hello YouCopy
Concatenación
La concatenación de un objeto de cuerda es tan simple como una adición.
void setup() {
Serial.begin(9600);
Serial.println(str);
Serial.println(F("Concat word"));
str=str+"You";
Serial.println(str);
}
void loop() {}
Hello World!
Concat word
Hello World!You
Copy
if(str==str1){
Serial.println("str and str1 are the same");
}
}
void loop() {}
Hello World!
str and str1 are the sameCopy
Funciones a recordar
sizeof(str) para saber el tamaño de la matriz
length(str) para saber la longitud de una cuerda en una matriz
strcat(str, str1) reemplazar str por str1
substring(index1, index2) extraer el String de index1 a index2
indexOf(), lastIndexOf() para encontrar un carácter en el String
void setup() {
Serial.begin(9600);
str1=String(chars); //convert char to String
str.toCharArray(chars1, 20);
if(str==str1){
Serial.println("str and str1 are the same");
}
if(strcmp(chars,chars1)==0){
Serial.println("chars and chars1 are the same");
}
}
void loop() {}