codice:
#include <stdio.h>
#include <string.h>
#define MAX 200
void swap(char *ptr,char *fptr);
int main()
{
char *s,*tokenptr;
char **m;
int t=0,i,j,p,h,ordine;
s=malloc(sizeof(char)*MAX);
printf("inserisci i nomi separati da uno spazio\n");
gets(s);
m= malloc(sizeof(char)*MAX*MAX);
for(i=0;i<MAX;i++)
{
m[i]=malloc(sizeof(char)*MAX);
}
tokenptr=strtok(s, " ");
while (tokenptr!=NULL) {
sprintf(m[t], "%s",tokenptr);//memorizzo i token in m
tokenptr=strtok(NULL, " ");
t++;
}
for(p=1;p<t;p++)//ciclo per controllare i passaggi da effettuare
{
for(j=0;j<t-1;j++)// ciclo per controllare i confronti per ogni passaggio
{
ordine=strcmp(m[j], m[j+1]);
if(ordine>0) // se strcmp ci da un maggiore positivo dobbiamo scambiare le due stringhe
swap(m[j], m[j+1]);//scambia le due stringhe
}
}
for(h=0;h<t;h++)//stampa le stringhe
{
printf("%s",m[h]);
printf(" ");
}
printf("\n");
return 0;
}
void swap(char *ptr,char *fptr)
{
char temp[MAX];
strcpy(temp, ptr);
strcpy(ptr,fptr );
strcpy(fptr, temp);
}
ho risolto secondo i suoi consigli ora il programma sembra funzionare..grazie mille!