#include <stdio.h>
#include <stdbool.h>
struct dicionario {
char palavra[21];
char definicao[51];
};
bool compararpalavras (const char palavra1[], const char palavra2[]) {
int x = 0;
while (palavra1[x] == palavra2[x] && palavra1[x] != '\0' && palavra2[x] !='\0') {
++x;
}
return palavra1[x] == '\0' && palavra2[x] == '\0';
}
int procurarpalavras (const struct dicionario lingua[], const char palavra[], const int numdepalavras) {
bool compararpalavras (const char palavra1[], const char palavra2[]);
int x = 0;
while (x < numdepalavras) {
if (compararpalavras(palavra, lingua[x].palavra)) {
return x;
} else {
++x;
}
}
return -1;
}
int main (void) {
int procurarpalavras(const struct dicionario lingua[], const char palavra[], const int numdepalavras);
const int NUMERODEDEFINICOES = 7;
char palavra[21] = {'\0'};
int resultadopesquisa;
const struct dicionario portugues[7] = {
{"pao", "alimento a base de farinha"},
{"mortadela", "tipo de carne"},
{"feijao", "comida brasileira"},
{"tropeiro", "tipo de feijao"},
{"queijo", "de minas"},
{"macarronada", "massa gostosa"},
{"pizza", "tipico da italia"}};
printf ("digite uma palavra: "); resultadopesquisa = procurarpalavras (portugues, palavra, NUMERODEDEFINICOES);
if (resultadopesquisa != -1) {
printf ("%s\n", portugues
[resultadopesquisa
].
definicao); } else {
printf ("\npalavra nao encontrada\n"); }
}
//http://pt.stackoverflow.com/q/30938/101
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRib29sLmg+CgpzdHJ1Y3QgZGljaW9uYXJpbyB7ICAgICAKICAgIGNoYXIgcGFsYXZyYVsyMV07CiAgICBjaGFyIGRlZmluaWNhb1s1MV07ICAgICAKfTsKCmJvb2wgY29tcGFyYXJwYWxhdnJhcyAoY29uc3QgY2hhciBwYWxhdnJhMVtdLCBjb25zdCBjaGFyIHBhbGF2cmEyW10pIHsgICAgICAKICAgIGludCB4ID0gMDsgICAgICAKICAgIHdoaWxlIChwYWxhdnJhMVt4XSA9PSBwYWxhdnJhMlt4XSAmJiBwYWxhdnJhMVt4XSAhPSAnXDAnICYmIHBhbGF2cmEyW3hdICE9J1wwJykgewogICAgICAgICsreDsgICAgICAgICAgICAgICAgCiAgICB9CiAgICByZXR1cm4gcGFsYXZyYTFbeF0gPT0gJ1wwJyAmJiBwYWxhdnJhMlt4XSA9PSAnXDAnOwp9CgppbnQgcHJvY3VyYXJwYWxhdnJhcyAoY29uc3Qgc3RydWN0IGRpY2lvbmFyaW8gbGluZ3VhW10sIGNvbnN0IGNoYXIgcGFsYXZyYVtdLCBjb25zdCBpbnQgbnVtZGVwYWxhdnJhcykgeyAgICAgICAgCiAgICBib29sIGNvbXBhcmFycGFsYXZyYXMgKGNvbnN0IGNoYXIgcGFsYXZyYTFbXSwgY29uc3QgY2hhciBwYWxhdnJhMltdKTsgICAgICAgCiAgICBpbnQgeCA9IDA7ICAgICAgCiAgICB3aGlsZSAoeCA8IG51bWRlcGFsYXZyYXMpIHsgICAgICAgICAKICAgICAgICBpZiAoY29tcGFyYXJwYWxhdnJhcyhwYWxhdnJhLCBsaW5ndWFbeF0ucGFsYXZyYSkpIHsgICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHJldHVybiB4OyAgICAgICAgICAgICAgIAogICAgICAgIH0gZWxzZSB7ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgKyt4OyAgICAgICAgICAgICAgIAogICAgICAgIH0gICAgICAgCiAgICB9CiAgICByZXR1cm4gLTE7ICAKfQoKaW50IG1haW4gKHZvaWQpIHsKICAgIGludCBwcm9jdXJhcnBhbGF2cmFzKGNvbnN0IHN0cnVjdCBkaWNpb25hcmlvIGxpbmd1YVtdLCBjb25zdCBjaGFyIHBhbGF2cmFbXSwgY29uc3QgaW50IG51bWRlcGFsYXZyYXMpOwogICAgY29uc3QgaW50IE5VTUVST0RFREVGSU5JQ09FUyA9IDc7CiAgICBjaGFyIHBhbGF2cmFbMjFdID0geydcMCd9OwogICAgaW50IHJlc3VsdGFkb3Blc3F1aXNhOwogICAgY29uc3Qgc3RydWN0IGRpY2lvbmFyaW8gcG9ydHVndWVzWzddID0gewoJICAgIHsicGFvIiwgImFsaW1lbnRvIGEgYmFzZSBkZSBmYXJpbmhhIn0sCgkgICAgeyJtb3J0YWRlbGEiLCAidGlwbyBkZSBjYXJuZSJ9LCAKCSAgICB7ImZlaWphbyIsICJjb21pZGEgYnJhc2lsZWlyYSJ9LAoJICAgIHsidHJvcGVpcm8iLCAidGlwbyBkZSBmZWlqYW8ifSwKCSAgICB7InF1ZWlqbyIsICJkZSBtaW5hcyJ9LAoJICAgIHsibWFjYXJyb25hZGEiLCAibWFzc2EgZ29zdG9zYSJ9LAoJICAgIHsicGl6emEiLCAidGlwaWNvIGRhIGl0YWxpYSJ9fTsKICAgIHByaW50ZiAoImRpZ2l0ZSB1bWEgcGFsYXZyYTogIik7CiAgICBzY2FuZiAoIiVzIiwgcGFsYXZyYSk7CiAgICByZXN1bHRhZG9wZXNxdWlzYSA9IHByb2N1cmFycGFsYXZyYXMgKHBvcnR1Z3VlcywgcGFsYXZyYSwgTlVNRVJPREVERUZJTklDT0VTKTsKICAgIGlmIChyZXN1bHRhZG9wZXNxdWlzYSAhPSAtMSkgewogICAgICAgIHByaW50ZiAoIiVzXG4iLCBwb3J0dWd1ZXNbcmVzdWx0YWRvcGVzcXVpc2FdLmRlZmluaWNhbyk7CiAgICB9IGVsc2UgewogICAgICAgIHByaW50ZiAoIlxucGFsYXZyYSBuYW8gZW5jb250cmFkYVxuIik7CiAgICB9Cn0KCi8vaHR0cDovL3B0LnN0YWNrb3ZlcmZsb3cuY29tL3EvMzA5MzgvMTAx