0% encontró este documento útil (0 votos)
49 vistas

Resumen Sobre Las String Con Arduino

Este documento proporciona una introducción a las cadenas y cuerdas en Arduino. Explica cómo definir cadenas utilizando matrices de caracteres y el tipo String. Detalla funciones como strlen(), sizeof(), strcat(), strcpy() y strcmp() para manipular cadenas. También cubre temas como modificar cadenas, concatenar, comparar y convertir entre cadenas y cuerdas.

Cargado por

makoko2910
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
49 vistas

Resumen Sobre Las String Con Arduino

Este documento proporciona una introducción a las cadenas y cuerdas en Arduino. Explica cómo definir cadenas utilizando matrices de caracteres y el tipo String. Detalla funciones como strlen(), sizeof(), strcat(), strcpy() y strcmp() para manipular cadenas. También cubre temas como modificar cadenas, concatenar, comparar y convertir entre cadenas y cuerdas.

Cargado por

makoko2910
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 9

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.

El tamaño de la matriz de caracteres


Para estudiar las cadenas utilizaremos dos funciones muy prácticas:
 strlen por conocer la longitud de una cadena de caracteres
 sizeof para saber el tamaño del conjunto que contiene la cadena

char str[]="Hello World!";

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

En este ejemplo, nuestra cuerda tiene una longitud de 12. Si definimos


explícitamente la longitud de la matriz, podemos ver que el programa no añade el
carácter nulo al final de la cadena.
char str[12]="Hello World!";

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.

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("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() {}

El tamaño de la matriz mantiene el tamaño inicial mientras que el tamaño de la


cadena se modifica. Si te desplazas hasta el final de la matriz, puedes ver que los
caracteres no han sido borrados o reemplazados. Sabiendo esto, ten cuidado al
manipular las cuerdas.

Delete end of string


Hello
Replace word
Hello You
String length :9
Array length :13
H
e
l
l
o

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() {}

Este ejemplo es equivalente al código anterior. La función strcat cambiará los


caracteres de la cadena. Si quieres mantener la cadena original puedes definir otra
cadena y copiar el texto en ella.
char chars[]="Hello World!";
char str[20];
void setup() {
 Serial.begin(9600);
 strcpy(str,chars);
str[6]=0;
strcat(str,"You");
Serial.println(str);
 Serial.print("String length :");Serial.println(strlen(str));
 Serial.print("Array length :");Serial.println(sizeof(str));
Serial.println(chars);

}
void loop() {}
Hello You
String length :9
Array length :20
Hello World!
Copy

Cuando la cadena de caracteres no esté definida, será necesario definir un tamaño


de matriz para que el microprocesador pueda reservar la memoria necesaria.

Comparación de dos cadenas


Incluso si la cadena está contenida en matrices de diferentes tamaños, es posible
compararlas usando la función strcmp().

char chars[]="Hello World!";


char str[20];
void setup() {
 Serial.begin(9600);
 strcpy(str,chars);
Serial.println(chars);

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

String str="Hello World!";


void setup() {
 Serial.begin(9600);
 Serial.println(str);
 Serial.print("String
length :");Serial.println(str.length());
 Serial.print("Array length :");Serial.println(sizeof(str));
for(int i=0;i<str.length();i++){
   Serial.println(str[i]);
}
Serial.println(F(" end of string"));
}
void loop() {}
Hello World!
String length :12
Array length :6
H
e
l
l
o

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.

String str="Hello World!";

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.

String str="Hello World!";

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

Comparación de dos String


Para copiar y comparar cadenas, se pueden utilizar los operadores habituales «=»
y «==».
String str="Hello World!";
String str1;
void setup() {
Serial.begin(9600);
str1=str; //copy String

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

Trabajando con String y cadenas de caracteres


En algunos proyectos, puede ser necesario manipular ambos tipos de variables. Es
posible cambiar de uno a otro utilizando el constructor String() para cambiar de char
a String y utilizando la función toCharArray() para cambiar de String a char.
String str="Hello World!",str1;
char chars[]="Hello World!",chars1[20];

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() {}

También podría gustarte