有没有一种方法可以按字母顺序对字符串数组进行排序,其中字符串包含大写字母和小写字母?
因为大写字母具有较低的 ASCII 值,所以像 strcmp 这样的函数总是显示它在小写字母之前。例如,假设我们想要对“ABCD”、“ZZZZ”、“turtle”、“JAVA”、“water”进行排序。
当使用strcmp之类的函数对这些字符串进行排序时,就变成了:
ABCD JAVA ZZZZ 龟 水
什么时候应该:
ABCD JAVA 龟 水 ZZZZ
最佳答案
使用带有 strcasecmp 或 strcoll 作为比较函数的 qsort。
strcasecmp 可能会更快,但 strcoll 更灵活并且使用程序语言环境以便非 ASCII 字符串可以工作。
关于c - 在C中用大写和小写字母对字符串数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3729294/