Boas
Eu tenho que fazer um programa em que cria um dicionário com algumas palavras e uma string.
Depois tenho que verificar quais palavras do dicionário existem na string e contar o numero de vezes que estas existem.
Ao implementar isto fiz este código mas a funçao strcmp não está a comparar, não sei porque.
Gostaria que alguem me pode-se ajudar.
Eu tenho que fazer um programa em que cria um dicionário com algumas palavras e uma string.
Depois tenho que verificar quais palavras do dicionário existem na string e contar o numero de vezes que estas existem.
Ao implementar isto fiz este código mas a funçao strcmp não está a comparar, não sei porque.
Gostaria que alguem me pode-se ajudar.
Código:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define D_SIZE 5
char dictionary[D_SIZE][20] = {};
void find_words(char *s);
int main(){
char palavras[20],*frase[100];
int n,i=0,k,j;
for (i=0;i<D_SIZE;i++){
printf("--insira a %d palavras do dicionario--\n",i+1);
gets(palavras);
for (k=0;k<strlen(palavras);k++){
dictionary[i][k]=palavras[k];
}
}
printf("insira a frase a ser verificada\n");
gets(frase);
//Passar a string frase para um vector de palavras
find_words(&frase);
system("PAUSE");
}
void find_words(char *frase){
int i=0,j,k,count[D_SIZE];
char * pch, *vect[20];
pch = strtok (frase," ");
while (pch != NULL)
{
vect[i]=pch;
pch = strtok (NULL, " ");
i++;
}
int cont[i-1];
for(j=0;j<D_SIZE;j++)
{
count[j]=0;
for(k=0;k<i;k++)
{
if (strcmp(vect[k],dictionary[j])==0);
{
count[j]=count[j]+1;
}
}
}
for(j=0;j<D_SIZE;j++)
{
if(count[j]>0)
printf("A palavra %s existe %d\n",dictionary[j],count[j]);
}
}