Ir para conteúdo
Fórum Script Brasil
  • 0

Verificar quantas vezes uma palavra repete no texto


FelipeSMorais

Pergunta

Boa Noite, tenho que verificar quantas vezes a palavra repete em um texto, ambos digitados pelo usuário, tenho uma cadeira na faculdade de algoritmo e aprendi até o inicio de ponteiros (acredito que não seja muita coisa), se alguém conseguir ver onde eu errei ou me dar alguma dica agradeço. Valeu!

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<locale.h>
int conta_ocorrencia_palavra(char texto[1000], char palavra[50]){
   char x=' ',aux[50];
   int igual=0,c,c3,c2=0;
      for(c=0;c<=strlen(texto);c++){
        if(texto[c]!=x){
          aux[c2]=texto[c];
          c2++;
		  }
        if(texto[c]==x || c==strlen(texto)){
           if(strcmp(aux,palavra)==0){
              igual=igual+1;
			  }
              for(c3=0;c3<strlen(aux);c3++){
              	aux[c3]='\0';
			  }
              c2=0;
           }
		}
return igual;
}
main(){
	setlocale(LC_ALL,"Portuguese");
	char texto[1000],palavra[50];
	scanf("%[^\n]s",texto);
	scanf("%s",palavra);
	printf("%d",conta_ocorrencia_palavra(texto,palavra));
system("pause");
}

 

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<locale.h>

const int TAM_TEXTO = 100;
const int TAM_PALAVRA = 50;

int conta_ocorrencia_palavra(char texto[], int TAM, char palavra[], int TAM2)

{

printf ("\n\n%d\n\n", TAM);

int igual = 0, i=0, j=0;

char aux [TAM_PALAVRA];

strcpy (aux, "");

for (i=0; i<TAM+1; i++)

    {

    if (texto[i]==' ' || texto[i]=='\0')

        {

            if (strcmp (aux, palavra)==0)
            igual++;

        strcpy(aux, "");
        j=0;
        }

    else

        {

        aux[j]=texto[i];

        j++;


        }


    }

printf ("\n%d\n", igual);

return 0;
}

int main(){
	//setlocale(LC_ALL,"Portuguese");

	char texto[TAM_TEXTO],palavra[TAM_PALAVRA];

	printf ("\nTEXTO:");
	scanf("%[^\n]s",texto);

	printf ("\n%s\n", texto);

	printf ("\nPALAVRA:");
	scanf("%s",palavra);

	conta_ocorrencia_palavra(texto, strlen(texto), palavra, strlen(palavra));

	//system ("pause");
return 0;
}

Você precisa passar aonde a string acaba,  é um array de caracteres e está na função main. E no for principal, que trabalha caractere por caractere da string texto, é preciso somar+1 no TAM ou colocar  i<=TAM ,  pois o final do texto não é ' ' e sim '\0', isso serve para que a ultima palavra da string também tenha efeito na função.

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...