【发布时间】:2020-03-20 07:30:36
【问题描述】:
我正在快速排序一个结构数组,这个结构有一个名为 ProcessName 的 char*。现在我已经使用我的比较函数使用 Qsort 按字母顺序对其进行了排序,但是如果 ProcessName 以 ( 开头,它将无法正确排序。
例如,“(ssh)”应该在“bash”之后,但是由于括号是第一个字符,括号在 bash 之前,此时它应该只考虑括号后面的字母。
现在我知道这是如何工作的了,检查第一个字符是否为 '(' 然后递增字符串,但这遇到了一些指针问题。
这是我的比较功能
int compare(const void *p1, const void *p2) {
const process *first = p1;
const process *second = p2;
return strcmp(first->Processname, second->Processname);
}
【问题讨论】:
-
只是
(需要跳过,还是任何非字母? -
任何非字母都可以,但是现在跳过 ( 就可以了。