independent sort
how would i rewrite this function to sort alphabetically by case? i did it dependently
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
course* sortByDescription(course* head)
{
course* newHead = 0;
course* oldHead = head;
while (oldHead)
{
course* a = oldHead;
oldHead = oldHead->next;
course* x, *prev;
for (x = newHead, prev = 0; x; prev = x, x = x->next)
{
if (strcmp(a->className, x->className) < 0)
break;
}
a->next = x;
if (prev)
prev->next = a;
else
newHead = a;
}
return newHead;
}
|
Write your own comparsion function:
1 2 3 4 5 6 7 8 9 10 11
|
int istrcmp(const char *s1, const char *s2)
{
int ret = 0;
while (!(ret = tolower(*(unsigned char *) s1) - tolower(*(unsigned char *) s2)) && *s2)
++s1, ++s2;
if (ret < 0)
ret = -1;
else if (ret > 0)
ret = 1 ;
return ret;
}
|
And use it instead of strcmp()
Last edited on
Topic archived. No new replies allowed.