Ajuda em C

[quote]Pessoal como eu faço para imprimir o tamanho de cada palavra numa frase.

Exemplo. Joao caiu do pe de feijao.

1 palavra tem tamanho -> 4
2 palavra tem tamanho -> 4
3 palavra tem tamanho -> 2
4 palavra tem tamanho -> 2
5 palavra tem tamanho -> 2
6 palavra tem tamanho -> 6

to tentado fazer. fiz esse código por enquanto, mas nao deu certo , ele imprimi o total da frase.[/quote]

printf(“Informe uma frase ou palavra qualquer\n”);
gets(frase);
fflush(stdin);

[code] for(i=0; i<=strlen(frase); i++){

  espaco =0; 
  if(frase[i] == ' '){ 
  espaco ++;
  
    if(espaco == 0){
    tamanho = strlen(frase);
    printf("%d\n",tamanho);          
    }
         
  }//fecha o if 

}//fecha o for

getch();
}[/code]

Você pode usar o método strtok do header string.h para quebrar a frase de acordo com os espaços em branco das palavras:

[code]#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main()
{
char frase[] = “O rato roeu a roupa do Rei de Roma.”;
char* token;
token = strtok(frase, " “);
while((token = strtok(NULL, " “)) != NULL)
printf(”%s\n”,token);
return 0;
}
[/code]
Depois é só usar o strlen para obter o tamanho de cada palavra.
O método strtok recebe dois parâmetros, a string a ser quebrada e o caracter de quebra. Como queremos quebrar a string nos pontos onde tem espaço em branco, usamos " ". Se você quisesse quebrar a string em pontos onde existem virgula, você passaria “,” no segundo parâmetro. Observe que na primeira chamada da função você passa o ponteiro da string a ser quebrada como primeiro parâmetro e nas chamadas seguintes você passa o ponteiro nulo.