Is there a way to sort an array of strings in alphabetical order where the strings contain both capital and lowercase letters?
Because capital letters have a lower ASCII value so functions like strcmp would always show that it is before a lower case letter. For example, lets say we wanted to sort “ABCD”, “ZZZZ”, “turtle”, “JAVA”, “water”.
When using functions like strcmp to sort these strings, it becomes:
ABCD
JAVA
ZZZZ
turtle
water
when it should be:
ABCD
JAVA
turtle
water
ZZZZ
Use qsort with either strcasecmp or strcoll as the compare function.
strcasecmp is likely to be faster, but strcoll is more flexible and uses the programs locale so that non-ASCII strings work.