[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.