C - 比较功能 - 需要说明

时间:2016-02-07 10:43:55

标签: c arrays string string-comparison

我目前正在阅读 Engineering a Sort Function 并尝试了解有关比较功能的以下几行:

  

要使用终结空字符对len-byte字符串数组进行排序,   使用标准字符串比较例程strcmp:qsort(a,n,len,   的strcmp);

要对指向字符串的指针数组进行排序,请使用strcmp   另一层次的间接。         int pstrcmp(char ** i,char ** j){return strcmp(* i,* j); }

字符串比较是明确的,但不能比较指向字符串的指针数组。我认为strcmp(*i, *j)只会比较两个数组中的第一个字符串,但如果这些字符串匹配则返回0(= 相等)。代码甚至不会看第2,第3等索引处的字符串。

这个方法真的只是比较两个数组中的第一个字符串,还是我错过了什么?

2 个答案:

答案 0 :(得分:1)

  

我认为strcmp(* i,* j)只会比较两个数组中的第一个字符串,但如果这些字符串匹配则会返回0(=相等)。代码甚至不会查看第2,第3等索引处的字符串。

你误解了这是为了什么。 “要排序一个指向字符串的数组 ......”。这是关于排序单个数组,而不是一个数组。

答案 1 :(得分:0)

qsort

{{1}}函数获取指向两个字符串(char *)的指针,{{1}}希望比较整个字符串数组