Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

AntonioCJr

programa para procurar a maior palavra dentro de uma string. (em C)

Recommended Posts

olá, senhores. Se já existe algum tópico sobre, desculpem-me, mas utilizei a busca e não achei. D:

 

bem, vamos ao problema: fiz um programa para contar quantas palavras tem em uma string, depois surgiu uma dúvida para achar a maior palavra dentro dessa mesma string, e não conseguir fazer. =x

 

 

aqui o code:

 

 

#include <stdio.h>
#include <string.h>
main(){
 
char string[50];
 
int i,b;
int tam1;
 
puts("\n");
printf("Digite uma frase:\n");
fgets(string,50,stdin);
string[strlen(string)-1]='\0';
 
tam1=strlen(string);
 
   for(b=0,i=0;i<tam1;i++){
    if(string[i]==' '){
        b++;
     }
    }
    printf("\nA frase ('%s') tem %i palavras",string,b+1);
 
}

Compartilhar este post


Link para o post
Compartilhar em outros sites
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
int main(void) {
   const char * frase = "FRASE ENORME AQUI PARA ACHAR A MAIOR PALAVRA";
   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;
}

Usei o strncat porque ele insere o \0 no final da string.

Estou ignorando o warning sobre tipos (&frase[0]) pq realmente estou enferrujada nessas equivalências...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.