3
I am having problems with the code below. Although the user type a word available, the return is always palavra nao encontrada
.
#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;
}
if (palavra1[x] == '\0' && palavra2[x] == '\0') {
return true;
} else {
return false;
}
}
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(procurarpalavras, 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;
int sair;
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: ");
scanf ("%s", palavra);
resultadopesquisa = procurarpalavras (portugues, palavra, NUMERODEDEFINICOES);
if (resultadopesquisa != -1) {
printf ("%s\n", portugues[resultadopesquisa].definicao);
} else {
printf ("\npalavra nao encontrada\n");
}
system ("pause");
}
In which environment this code is being compiled?
– lsalamon
This also works perfectly for C++, would you mind putting the tag of it or that I put? Only put it if you think I would not have any problem.
– Maniero