gorizia Postado Outubro 6, 2017 Denunciar Share Postado Outubro 6, 2017 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; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
gorizia
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;
}
Link para o comentário
Compartilhar em outros sites
0 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.