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

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í: