Ordenar arreglo de cadenas en C

En este post de programación en C te mostraré cómo ordenar un arreglo de cadenas de manera alfabética en orden ascendente. Es decir, ordenar un array de strings en C de la A a la Z.

Ordenar un arreglo de cadenas en C es distinto a hacerlo con uno de tipo numérico, pues para comparar cadenas usamos strcmp. Además, el tipo string no existe como tal, así que debemos usar arreglos de arreglos.

Lecturas recomendadas

Antes de continuar te recomiendo que leas la introducción a los arreglos de cadenas en C, así como al método de la burbuja con enteros.

De hecho podemos usar cualquier método que ordene arreglos, pero usaré el método de la burbuja para ordenar las cadenas porque es el método más sencillo de entender.

Ordenar arreglo de cadenas en C

Ordenar arreglo de cadenas alfabéticamente en C

La función recibe un arreglo de cadenas para ser ordenado y la longitud del arreglo, de ese modo podemos hacer un ciclo for que lo recorre. En cada paso, usamos strcmp para comparar las cadenas y realizar el ordenamiento.

En caso de que exista la necesidad de hacer el intercambio de valores usamos memcpy para intercambiar elementos de arreglos de cadenas en C.

Por lo tanto el método que ordena se ve así:

Los comentarios ayudan a explicar el código. Básicamente ordena el arreglo y lo modifica internamente.

Poniendo todo junto

Anteriormente vimos el método en cuestión, ahora veamos cómo usarlo. Para ello primero declaramos un arreglo, calculamos su longitud y lo imprimimos para ilustrar:

Después, ordenamos el arreglo de cadenas en C invocando a burbuja y finalmente imprimimos el arreglo ya ordenado alfabéticamente:

El código completo queda así:

Puedes ejecutarlo en este enlace.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario