Trabajando con arreglos de cadenas en C

Introducción

El tipo de dato cadena, al menos en los estándares de C, no existe.

Una cadena es un arreglo de caracteres, o sea, del tipo char.

Por lo tanto, para declarar un arreglo de cadenas o strings en C necesitamos un arreglo de caracteres bidimensional, porque tendrá arreglos dentro de un arreglo.

Veamos hoy cómo declararlo, calcular su tamaño, recorrerlo y pasarlo como argumento a una función en C.

Declarar un arreglo de cadenas

Lo malo de esto es que no podemos confiar en que el compilador pondrá la longitud automáticamente. Por ejemplo, cuando declaramos una cadena podemos hacer esto:

char busqueda[] = {"Comadreja"};

Ahí, no declaramos la longitud de la cadena pero el compilador se la pondrá. No pasa lo mismo con un arreglo de cadenas.

La forma con la que soñamos es:

Pero no, no es así. Si intentamos compilar, GCC u otro compilador nos avisará que todas las dimensiones del arreglo deben tener límites, excepto la primera.

O sea que estamos obligados a poner la longitud de las cadenas que podrá albergar el arreglo. Así:

En ese caso, el compilador calculará la cantidad de cadenas que hay, pero nosotros le decimos cuál es la longitud máxima.

En resumen, podemos poner cadenas de hasta 50 caracteres dentro de nuestro arreglo.

Pero no te confundas, ese número lo ponemos nosotros, puedes cambiarlo a 9999 si quieres, o ponerlo en un macro al inicio:

#define MAXIMA_LONGITUD_CADENA 50

Y declarar el arreglo así:

De esta manera puedes cambiar la longitud rápidamente.

Calcular tamaño de arreglo de cadenas en C

Igualmente usamos sizeof para calcular el tamaño, como lo vimos hace algún tiempo.

Para la longitud de un arreglo de cadenas nada cambia, así se calcula:

int longitudDelArreglo = sizeof(arreglo) / sizeof(arreglo[0]);

Un programa que imprime su longitud y que nos sirve de ejemplo es este:

Ejecútalo si quieres, la salida será El arreglo mide: 6

Recorrer arreglo de cadenas en C

Igual que los otros. Aquí el código necesario, pues es casi la combinación de lo de arriba:

Es un ciclo for a partir de que ya tenemos el tamaño o longitud del arreglo. Y dentro del arreglo hay cadenas. Pruébalo si quieres.

Pasar un arreglo de cadenas como argumento a una función en C

Para terminar veremos cómo podemos llamar a una función y pasarle nuestro arreglo de cadenas; dentro de la función simplemente lo vamos a recorrer.

Si queremos recibir un arreglo, debemos definir sus límites al igual que cuando lo declaramos. Así:

No debemos especificar la longitud del mismo, pero sí de lo que contiene. Para llamar a una función, primero declaramos el arreglo y se lo pasamos sin más.

Aquí un ejemplo:

Combinando todo lo de arriba, podemos usar a la función del preprocesador para que ponga los límites dependiendo de MAXIMA_LONGITUD_CADENA.

De esta manera podemos llamar a funciones con arreglos de cadenas en C.

Aquí un replit.

De esta manera es como terminamos el post.

Trabajando con arreglos de cadenas en C

Por parzibyte Tiempo de lectura: 2 min
0