/* ~Mini Dicionario~
Usuário digita uma palavra, a função verifica se essa palavra existe no dicionario e retorna a definicão */
#include <stdio.h>
struct dict
{
char palavras[20];
char definicao[50];
};
bool compare(const char s1[], const char s2[])
{
int i, sum = 0;
for(i = 0; s1[i] != '\0'; i++)
{
if(s1[i] == s2[i])
{
sum++;
}
}
if(sum == i)
{
return true;
}
else
{
return false;
}
}
int search(const struct dict vecEst[], const char strInp[], const int qtd) //Recebe um vetor de estrutura tipo dict, uma palavra
{ //inserida pelo usuário, e um número de palavras de dict
int i = 0;
while(i < qtd)
{
if(compare(strInp, vecEst[i].palavras)) //compara a palavra digita pelo usuário(strInp) com cada uma das palavras
{ //do dicionário do tipo dict
return i; //se a palavra for igual, retorna o índice daquela palavra
}
else
{
i++;
}
}
return -1;
}
int main(void)
{
char palavra[20];
int result;
printf("Digite uma palavra: ");
scanf("%s", palavra);
const struct dict dicionario[7] = //vetor de estrutura tipo dict
{{"Calculadora","Dispositivo"},
{"Vaca","Animal"},
{"Júpiter","Planeta"},
{"Casa","Lugar de moradia"},
{"Uau","Demonstracao de surpresa"},
{"Mingau","Doce mole"},
{"Avenida","rua de bastante movimento"}
};
result = search(dicionario, palavra, 7); //resultado da busca agora recebe i
if(result != -1)
{
printf("%s\n", dicionario[result].definicao);
}
else
{
printf("Palavra nao encontrada.");
}
return 0;
}