c - 在C中用大写和小写字母对字符串数组进行排序

标签 c arrays string sorting capitalization

有没有一种方法可以按字母顺序对字符串数组进行排序,其中字符串包含大写字母和小写字母?

因为大写字母具有较低的 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/

相关文章:

C : how can I type a name and end it with '.' (dot)

c - 为什么这个 djb2 实现循环终止?

c - 覆盖 C 数组中的空字符

c - 通过 fputc 与 C 中的 fwrite 数组写入文件

arrays - 需要将 JSON 数据提取字段配置到 flutter 中的小部件元素

php - 正则表达式仅匹配不以引号开头的字符串

C 程序在程序结束时返回随机字符? (最后一个功能)

c - Julia ccall 的不一致行为

javascript - 使用 Javascript 测量点击次数?

java - 如何将Word转换为固定数字