#include <stdio.h>
#include<string.h>
#include<stdlib.h>
#include<malloc.h>
struct namelist{
char com[20];
char last[10];
};
int cmp ( const void *a , const void *b )
{
return strcmp( (*(struct namelist *)a).last , (*(struct namelist *)b).last );
}
void sort_names(char **names, int names_length) {
int i;
char *s;
char temp[11];
struct namelist * na=(struct namelist*)calloc(names_length,sizeof(struct namelist));
for(i=0;i<names_length;i++){
strcpy(na[i].com,names[i]);
strcpy(temp,names[i]);
s=strtok(temp," ");
s=strtok(NULL," ");
strcpy(na[i].last,s);
}
qsort(na, names_length,sizeof(na[0]),cmp);
for(i=0;i< names_length;i++)
printf("%s\n",na[i].com);
}
void main()
{
char *s[2];
char * a="tom jerrr";
char * b="tom berrr";
s[0]=a;
s[1]=b;
char **s1=s;
sort_names(s1, 2);
}