I just figured out how to declare a 'struct' in C last night, and I think I should probably use one for this task.

If I create a struct, I can define the first member of that struct as the strings that are found in the array. Then I can create a second member which will be like an ID number. With that struct in place, I can sort the struct elements based on the value of the ID number using something like qsort. I have not actually done that part yet, but it seems doable. I do not know if its efficient or not, but it seems like a reasonably straight-forward approach.