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.