quarta-feira, 28 de outubro de 2009

list.c

#include <stdio.h>

struct alf
{ 
 char lt;
 struct alf *next;
}ar[27];


int main()
{
 struct alf *list_p;
 char ch, *str, *ar_p[12];
 short indx;
 ch = 97;
 str = "hello world";

 for(indx = 0; indx <= 25; indx++, ch++)
 {
  ar[indx].lt = ch;
  ar[indx].next = &ar[indx+1];
 }
 ar[26].lt = ' ';
 ar[26].next = (void *)0;


 for(indx = 0; *str != 0; str++)
 {
  list_p = ar; /* back 'a' */
  while(list_p)
  {
   if(list_p->lt == *str)
   ar_p[indx++] = &list_p->lt;
   list_p = list_p->next;
  }
 }
 *ar_p[11] = '\0'; 

 for(indx = 0; *ar_p[indx] != '\0'; indx++)
  printf("%c", *ar_p[indx]);
 putchar('\n'); 

 return(0);
}

OUTPUT:
hello world

I'm updating this becase I realy like it.. (dec 10)
struct alf is a linked list with alphabet letters, and one space
(becouse hello world have a space :P)

So.. I got an array that have pointers pointing to the right members
of the list.. I don't copy the chars... I print it from where they are

Um comentário: