Ir ao conteúdo

Posts recomendados

Postado

Prezados, estou tendo problemas com a execução de um programa que tem como intuito simular o uso de um dicionario...

Estou iniciando o estudo na linguagem C, então caso encontre um erro besta por favor me notifique...

 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
char dic [][11]={"cat","gato",
                "dog","cachorro",
                "is", "é",
                "bad","ruim",
                 "","",};
char frase [50];
char palavra [11];
char *p;

void pega_palavra()
 {
  char *q;
  q=palavra;
  while (*p && *p!=' ')
  {
      *q=*p;
      p++;
      q++;
  }
  if (*p==' ')p++;
  *q='\0';
 }


 int traducao ()
 {
     int i;
     for(i=0;*dic;i=i+2)
     {
        if(strcmp(dic,palavra)==0) break;
     }
    if(*dic) return (i+1);
    else return (-1);
 }

int main()
{
    char opcao;
    int linha;
    do
    {
        printf("Insira a frase que queira traduzir: \n");
        getc(frase);
        fflush(stdin);
        p=frase;
        pega_palavra();
        printf("\n====Menu====\n");
        printf("A-Portugues\nB\nC\nS-Sair\n");
        printf("\nEscolha uma opcao: ");
        opcao=getchar();
        opcao=toupper(opcao);
        switch(opcao)
        {
        case 'A':
            linha=traducao();
                if(linha!=-1)
                    printf("%s ",dic[linha]);
                else
                    printf("%s ",palavra);
                pega_palavra();
                break;
        }
        while(*palavra);
        /*printf("\nQuer traduzir outra frase?s/n\n");
     opcao=getche();*/

    }while(opcao!='S');

    return 0;
}
 

  • Curtir 1
Postado

@Kevin Mikio

 int traducao ()
 {
     int i;
     for(i=0;*dic;i=i+2)
     {
        if(strcmp(dic,palavra)==0) break;
     }
    if(*dic) return (i+1);
    else return (-1);
 }

 O que você queria fazer nessa parte? ↑ 
 Primeiro você faz um for que fala que i é = 0, ai informa um ponteiro, depois fala que i é igual a i + 2 '-'
Em baixo você compara 2 chars e se forem iguais você para

 

getc(frase);

↑ Nessa linha você ta tentando converter um char em FILE
 

opcao=toupper(opcao);

↑ E nessa linha não foi declarado esse toupper

Segue o link com esses erros arrumados, tá compilando normal é só você consertar o código pra fazer o que você deseja (só consertei os erros pra compilar normal, conserta ai e posta se tiver dúvidas)

 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
char dic [][11]={"cat","gato",
                "dog","cachorro",
                "is", "é",
                "bad","ruim",
                 "","",};
	char frase[50];
	char palavra[11];
	char *p;
void pega_palavra()
 {
  char *q;
  q=palavra;
  while (*p && *p!=' ')
  {
      *q=*p;
      p++;
      q++;
  }
  if (*p==' ')p++;
  *q='\0';
 }

 int traducao ()
 {
     int i,x;
     //for(i=0;*dic;i=i+2)
     for(i=0;x<=i;x++)
     {
        if(strcmp(palavra,*dic)!=0)
		{ 
		printf("Nao temos essa traducao");
		break;
     }
     else
     {
	return (i+1);
    }
}
}
int main()
{
	char opcao;
    int linha;
    int toupper(opcao);
    do
    {
        printf("Insira a frase que queira traduzir: \n");
        *palavra = getc(stdin);
		*palavra = fflush(stdin);
		p=palavra;
        pega_palavra();
        printf("\n====Menu====\n");
        printf("A-Portugues\nB\nC\nS-Sair\n");
        printf("\nEscolha uma opcao: ");
        opcao=getchar();
        toupper;
        switch(opcao)
        {
        case 'a':
            linha=traducao();
                if(linha!=-1)
                    printf("%s\n ",dic[linha]);
                else
                    printf("%s\n ",palavra);
                pega_palavra();
                break;
        }
        while(*palavra);
        //printf("\nQuer traduzir outra frase?s/n\n");
     //opcao=getche();
    }while(opcao!='s');
   exit(0);
}


 

  • Curtir 2

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!