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á.
Pergunta
njsf1
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á.
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.