【发布时间】:2016-05-17 02:24:27
【问题描述】:
我目前正在阅读 Engineering a Sort Function 并尝试了解以下有关比较函数的内容:
要对带有终端空字符的 len 字节字符串数组进行排序, 使用标准的字符串比较例程 strcmp: qsort(a, n, len, strcmp);
要对指向字符串的指针数组进行排序,请将 strcmp 与 另一个层次的间接性。 int pstrcmp(char **i, char **j) { return strcmp(*i, *j); }
字符串比较是明确的,但不是字符串指针数组的比较。我认为strcmp(*i, *j) 只会比较两个数组中的第一个字符串,但如果这些字符串匹配,则会返回 0 (= equality)。代码甚至不会查看位于第 2、第 3 等索引处的字符串。
这种方法真的只是比较两个数组中的第一个字符串还是我遗漏了什么?
【问题讨论】:
-
什么是 pstrcmp?我不知道这样的功能。
-
我不清楚这两种情况下数组的类型是什么
-
@VladfromMoscow 他展示了函数的定义
标签: c arrays string string-comparison