alguém me ajude aí por favor. como é que eu faco uma funcao que leia uma string dada pelo usuario , separa as palavras dessa string e bota cada palavra num ponteiro, numa lista encadeada???? bem, fiquei aqui tentando mas eu fiz um programa que da erro em algumas instancias de entrada. é pro trabalho aqui da facul eheh.eu fz isso aqui mas não está muito bom não. #include<stdio.h> #include<ctype.h> #include<malloc.h> typedef struct str_palavra{ int linha; char palavra[30]; struct str_palavra *prox; } regpalavra, *apontpalavra; apontpalavra inifilap,fimfilap; void inserepalavranop(char sl[51],int c){ apontpalavra tmp; int cont,r; cont=0; printf("teste"); while((cont<=50)&&(sl[cont])){ if(isalpha(sl[cont])){ tmp=malloc(sizeof(regpalavra)); tmp->linha=c; r=0; while(isalpha(sl[cont])){ tmp->palavra[r]=sl[cont]; r++; cont++; } if (!inifilap){ inifilap=tmp; fimfilap=tmp; } else{ fimfilap->prox=tmp; fimfilap=tmp; } } else cont++; } } int main(void){ char sl[51]; int n,c; scanf("%d",&n); inifilap=fimfilap=NULL; for(c=1;c<=n;c++){ scanf("%s",sl); inserepalavranop(sl,c); } printf("%d",fimfilap->linha); printf("%s",fimfilap->palavra); } opa, quando copiei ficou tudo alinhado à esquerda. deixa pra lá.