Jump to content
Fórum Script Brasil
  • 0

PROCURAR STRING, E RETORNAR DESCRIÇAO


Question

Boa tarde,

estou começando a aprender programação na linguagem c, e estou tentando descobrir onde que esta faltando código para o programinha que recebe um string, e retornar a descrição dessa palavra. Vocês podem me da esse bizu...

 

 #include <stdio.h>
#include <stdbool.h>


struct dicionario{
       char palavra[20];
       char definicao[50];
};

// compara duas palavras.

bool compararStrings(const char palavra1[], const char palavra2[]){
     int i = 0;
     while(palavra1 == palavra2 && palavra1 != '\0' && palavra2 != '\0'){
             ++i;
     }
     if (palavra1 == '\0' && palavra2 == '\0'){
           return true;
     }else{
           return false;     
     }

}

// procura String.

int procurarStrings(const struct dicionario lingua[], const char procurar[], const int numDePalavras){
    
    bool compararStrings(const char palavra1[], const char palavra2[]);
    
    int i = 0;
    while(i < numDePalavras){
            if (compararStrings(procurar, lingua.palavra)){
               return i;      
            }else{
               ++i;   
            }
    }
        return -1;
}


int main(void){
    
    int procurarStrings(const struct dicionario lingua[], const char procurar[], const int numDePalavras);
    
    const int N = 7;
    char palavraI[20] = {'\0'};
    int resultadoPesquisa;
    
    const struct dicionario portugues[N] =
    {
    {"pao","comida de farinha."},
    {"mortadela","comida de carne."},
    {"feijao","comida basileiria."},
    {"tropero","tipo de feijao."},
    {"queijo","derivado do leite."},
    {"macaronada","de macarrao."},
    {"pizza","tipico da Italia."}
    };
     
     // interação com o usuário.
     printf("Digite uma palavra: ");
     scanf("%s\n", &palavraI);
     
      
     resultadoPesquisa = procurarStrings(portugues, palavraI, N);
     
         
     if(resultadoPesquisa != -1){
     printf("%s\n", portugues[resultadoPesquisa].definicao);                   
     } else {
       printf("palavra não encontrada!\n");
     }
          
    getchar();
    return 0;
} 

 

Link to post
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Olá @RAILSON DE JESUS DINIZ ROSExiste um erro, os índices não atribuídos necessários para acessar e gravas informações nos espaços dos vetores. Corrigindo funcionou  

struct dicionario {
       char palavra[20];
       char definicao[50];
};

//** compara duas palavras. */
bool compararStrings(const char palavra1[], const char palavra2[]){
     int i = 0;
     while(palavra1[i] == palavra2[i] && palavra1[i] != '\0' && palavra2[i] != '\0'){
             ++i;
     }
     if (palavra1[i] == '\0' && palavra2[i] == '\0'){
           return true;
     }else{
           return false;
     }

}

// procura String.

int procurarStrings(const struct dicionario lingua[], const char procurar[], const int numDePalavras){

    bool compararStrings(const char palavra1[], const char palavra2[]);

    int i = 0;
    while(i < numDePalavras){
            if (compararStrings(procurar, lingua[i].palavra)){
               return i;
            }else{
               ++i;
            }
    }
        return -1;
}


int main(void){
    const int N = 7;
    char palavraI[20] = {'\0'};
    int resultadoPesquisa;

    const struct dicionario portugues[7] =
    {
        {"pao","comida de farinha."},
        {"mortadela","comida de carne."},
        {"feijao","comida basileiria."},
        {"tropero","tipo de feijao."},
        {"queijo","derivado do leite."},
        {"macaronada","de macarrao."},
        {"pizza","tipico da Italia."}
    };

     // interação com o usuário.
     printf("Digite uma palavra: ");
     scanf(" %s",palavraI);


     resultadoPesquisa = procurarStrings(portugues, palavraI, N);


     if(resultadoPesquisa != -1){
     printf("%s\n", portugues[resultadoPesquisa].definicao);
     } else {
       printf("palavra não encontrada!\n");
     }
    getchar();
    return 0;
}

Dessa maneira funciona tudo como esperado!?

Link to post
Share on other sites
  • 0
Em 19/07/2019 em 19:38, britivaldo disse:

Olá @RAILSON DE JESUS DINIZ ROSExiste um erro, os índices não atribuídos necessários para acessar e gravas informações nos espaços dos vetores. Corrigindo funcionou  

struct dicionario {
       char palavra[20];
       char definicao[50];
};

//** compara duas palavras. */
bool compararStrings(const char palavra1[], const char palavra2[]){
     int i = 0;
     while(palavra1[i] == palavra2[i] && palavra1[i] != '\0' && palavra2[i] != '\0'){
             ++i;
     }
     if (palavra1[i] == '\0' && palavra2[i] == '\0'){
           return true;
     }else{
           return false;
     }

}

// procura String.

int procurarStrings(const struct dicionario lingua[], const char procurar[], const int numDePalavras){

    bool compararStrings(const char palavra1[], const char palavra2[]);

    int i = 0;
    while(i < numDePalavras){
            if (compararStrings(procurar, lingua[i].palavra)){
               return i;
            }else{
               ++i;
            }
    }
        return -1;
}


int main(void){
    const int N = 7;
    char palavraI[20] = {'\0'};
    int resultadoPesquisa;

    const struct dicionario portugues[7] =
    {
        {"pao","comida de farinha."},
        {"mortadela","comida de carne."},
        {"feijao","comida basileiria."},
        {"tropero","tipo de feijao."},
        {"queijo","derivado do leite."},
        {"macaronada","de macarrao."},
        {"pizza","tipico da Italia."}
    };

     // interação com o usuário.
     printf("Digite uma palavra: ");
     scanf(" %s",palavraI);


     resultadoPesquisa = procurarStrings(portugues, palavraI, N);


     if(resultadoPesquisa != -1){
     printf("%s\n", portugues[resultadoPesquisa].definicao);
     } else {
       printf("palavra não encontrada!\n");
     }
    getchar();
    return 0;
}

Dessa maneira funciona tudo como esperado!?

@britivaldo muito obrigado, queria pedir um coisinha a mais. Sou iniciante e seria possível voce pontuar onde mudou????

Link to post
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.



  • Forum Statistics

    • Total Topics
      148674
    • Total Posts
      644490
×
×
  • Create New...