Programa que leia uma linha de texto e informe a quantidade de palavras e qual
a maior palavra da linha digitada.
Não estou conseguindo fazer funcionar:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void) {
const char * frase = "FRASE";
int quantidade_palavras = 0;
int tamanho_maior = 0;
int tamanho_tmp = 0;
char * inicio_maior = &frase[0];
char * palavra_inicio = &frase[0];
while (1) {
tamanho_tmp = strcspn(palavra_inicio, " ");
if (!tamanho_tmp) break;
quantidade_palavras++;
if (tamanho_tmp > tamanho_maior) {
tamanho_maior = tamanho_tmp;
inicio_maior = palavra_inicio;
}
palavra_inicio = palavra_inicio + sizeof(char) * tamanho_tmp + 1;
}
printf("Quantidade de palavras:%d\n", quantidade_palavras);
char * maior = (char *)malloc(sizeof(char) * tamanho_maior+1);
if (maior) {
strncat(maior, inicio_maior, tamanho_maior);
printf("Maior palavra: %s\n", maior);
free(maior);
}
return 0;
}