Buenas !!! , veras ,ordenar estructuras es a priori igual de facil que con enteros o cadenas.
Siguiendo el ejemplo de estructura que ya habian puesto, pero imaginando que tu problema sera mas bien con un array de estructuras que forman tu base de datos, puedes ordenarlas por el criterio que mas te guste:
Por cadena, con la funcion :
strcmp (cad1, cad2) que metida en un if te dira si el campo de tu estructura es >, < ó = que cero
if (strcmp(estructura1.campo_caracter, estructura2.campo_caracter)>0) ...
Por numeros:
Con una simple comparacion en el if de >, < o =
if (estructura1.campo_numerico> estructura2.campo_numerico) ...
Despues del if que elijas y segun quieras ordenar (ascendente, descendente, etc..) pues utiliza el tipico intercambio para ordenar, utilizando una estructura auxiliar para no machacar ningun registro:
aux=estructura_peque;
estructura_peque=estructura_mayor;
estructura_mayor=aux;
Espero que te sea de ayuda, sino e-mail me y te mando el programilla en c:)