Los «char arrays» son una forma fundamental de trabajar con texto en muchos lenguajes de programación
Un «char array» es una estructura de datos en programación que se utiliza para guardar una secuencia de caracteres. La palabra «char» se refiere a caracteres individuales, como letras o símbolos, y «array» significa que estos caracteres se almacenan uno después del otro en la memoria.
Por ejemplo, si se tiene la palabra «Hola», un «char array» la representaría como una serie de caracteres: ‘H’, ‘o’, ‘l’, ‘a’. Cada uno de estos caracteres se guarda en una posición específica del array y se puede acceder a ellos por su posición. El primer carácter estará en la posición 0, el segundo en la posición 1, y así sucesivamente.
Ahora un ejemplo para compilar con cualquier placa con Arduino IDE
void setup() {
Serial.begin(9600); // Inicializar la comunicación serial
char mensaje[] = "Hola, este es un ejemplo de conteo de vocales";
int cantidadVocales = contarVocales(mensaje);
Serial.print("El mensaje es: ");
Serial.println(mensaje);
Serial.print("La cantidad de vocales es: ");
Serial.println(cantidadVocales);
}
void loop() {
// Tu código aquí
}
int contarVocales(char *cadena) {
int contador = 0;
for (int i = 0; cadena[i] != '
void setup() {
Serial.begin(9600); // Inicializar la comunicación serial
char mensaje[] = "Hola, este es un ejemplo de conteo de vocales";
int cantidadVocales = contarVocales(mensaje);
Serial.print("El mensaje es: ");
Serial.println(mensaje);
Serial.print("La cantidad de vocales es: ");
Serial.println(cantidadVocales);
}
void loop() {
// Tu código aquí
}
int contarVocales(char *cadena) {
int contador = 0;
for (int i = 0; cadena[i] != '\0'; i++) {
char caracter = toLowerCase(cadena[i]); // Convertir el caracter a minúscula para hacer la comparación
if (caracter == 'a' || caracter == 'e' || caracter == 'i' || caracter == 'o' || caracter == 'u') {
contador++;
}
}
return contador;
}
'; i++) {
char caracter = toLowerCase(cadena[i]); // Convertir el caracter a minúscula para hacer la comparación
if (caracter == 'a' || caracter == 'e' || caracter == 'i' || caracter == 'o' || caracter == 'u') {
contador++;
}
}
return contador;
}
En este ejemplo, se ha creado una función llamada contarVocales
que toma un puntero a una cadena de caracteres (char *cadena
) como argumento.
Dentro de esta función, se recorre cada caracter en la cadena utilizando un bucle for
. Convertimos cada carácter a minúscula usando la función toLowerCase()
para asegurarnos de que se cuenten las vocales tanto en mayúscula como en minúscula.
Si el carácter es una vocal (‘a’, ‘e’, ‘i’, ‘o’, ‘u’), incrementamos el contador. Al final, la función devuelve la cantidad total de vocales encontradas en la cadena.
Este ejemplo muestra cómo puedes utilizar funciones y bucles para realizar manipulaciones más avanzadas con cadenas y caracteres en Arduino IDE. Puedes construir sobre este concepto para crear funciones más complejas que realicen diferentes tareas con texto.
¿Por qué un puntero?
En C y C++, una cadena de caracteres es en realidad un array de caracteres, y se representa mediante un puntero al primer elemento del array. Cuando pasamos una cadena como argumento a una función, en realidad estamos pasando un puntero al primer carácter de la cadena. Esto se debe a cómo funcionan los arrays en C/C++.
Ergo, cuando se declaró int contarVocales(char *cadena)
, se estaba indicando que la función toma un puntero a un carácter como argumento, lo que es técnicamente correcto. Sin embargo, también es válido declarar la función como int contarVocales(char cadena[])
, ya que en C/C++, los arrays de caracteres se pasan como punteros al primer elemento.
No es la primera vez que entro a esta web a buscar sobre los char array. Dejo mi saludo desde Mexico DF 🇲🇽