原先的函数类型是int ,而sort要求的比较函数是bool类型的 再看 strcmp(a, b) a < b 返回 -1 a = b 返回 0 a > b 返回 1 当你直接 return strcmp(a, b) 的时候,只有a = b的时候是0,其他都是非0 而在sort中,如果有比较函数,会用 cmp 和 !cmp来进行位置判断。 在sort中,按照这个标准就把字符串位置换来换去,结果错误。
所以 用return strcmp(a, b) <=0 这样告诉sort 当a <= b的时候,2个字符串的位置正确