Jump to content
Fórum Script Brasil
  • 0

Verificar quantas vezes uma palavra repete no texto


FelipeSMorais
 Share

Question

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 to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      149.9k
    • Total Posts
      646.8k
×
×
  • Create New...