Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

sinkz

Dificuldades em fazer função com Char

Recommended Posts

Galera to com uma dificuldade, nao to conseguindo retornar um valor char. Olha o exercicio:
Me ajudem se possivel, obrigado

/* 14-	Escreva uma função que receba um código de linguagem como parâmetro
(um valor inteiro e 1 a 5) e em função deste código retorne a expressão "Bem vindo" em 5 idiomas diferentes.*/
#include <stdlib.h>
#include <stdio.h>

char idioma(int num){
	char idi[10];
	
	if(num==1){
	idi[10]="Welcome";
		
	}
	return idi;
	
}



int main(){
	int num;
	char res, id;
	printf("1-Ingles\n2-Japones\n3-Alemão\n4-Portugues\n5-Italiano\nEntre com uma opcao: ");
	scanf("%d", &num);
	idioma(num);
	
	printf("Bem vindo = %s", idioma(id));
	system("PAUSE");
	return 0;
	
	

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vc está retornando um char. O correto é retornar um char * (ou sequência de strings).

 

 

char * idioma(int num){
   const char frases[5][20] = {'Welcome','???','??','Bem-vindo','Benvenuto'};
   return frases[num+1];
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Continua dando erro,

8 C:\Users\AMF SERVIDOR\Desktop\Diego\Estrutura de Dados\Lista 4\Funçoes\Exercicios\Ex14L4.cpp [Error] invalid conversion from `const char*' to `char*'

Compartilhar este post


Link para o post
Compartilhar em outros sites

char *idioma(int num){

switch(num)
{
case 1: return "Welcome";
case 2: return "Bem Vindo";
}

}

#include <stdio.h>

int main()
{
printf("%s\n", idioma(2));
return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

você está retornando um char. O correto é retornar um char * (ou sequência de strings).

char * idioma(int num){
   const char frases[5][20] = {'Welcome','???','??','Bem-vindo','Benvenuto'};
   return frases[num+1];
}
const char* idioma(int num)
{
   static const char frases[5][16] = {"Welcome", "???", "??", "Bem-vindo", "Benvenuto"};

   return frases[num - 1];
}

Compartilhar este post


Link para o post
Compartilhar em outros sites
/* 14-	Escreva uma função que receba um código de linguagem como parâmetro
 *(um valor inteiro e 1 a 5) e em função deste código retorne a expressão
 *"Bem vindo" em 5 idiomas diferentes.
 */
#include <stdio.h>
#include <stdlib.h> /* system("exit")   system("cls")*/

void chamar(void);  

void idioma( int a)  
{
	
	switch (a)
	{
		case 1:
			system("cls");
		        printf("Welcome!");
			break;
		case 2:
			system("cls");
			printf("Kangei!");
			break;
		case 3:
			system("cls");
			printf("Bem-vindo!");
			break;
		case 4:
			system("cls");
			printf("Benvenuto!");
			break;
		case 5:
			system("cls");
		        printf("Willkomen!");
			break;
		default:
			chamar();
			
	}
	
}
void chamar(void)   /* Função caso digite numero errado */
{
        int tentar;
	system("cls");
	printf("Tente um numero valido: \n");
	scanf("%d", &tentar);
	idioma(tentar);
}

int main(void)
{
	system("title SAUDACOES");
	system("cls");

	int escolha, loop = 0;
	printf("<1> Ingles\n<2> Japones\n<3> Portugues\n<4> Italiano\n<5> Alemao\n\nDigite sua opcao:\n");
	scanf("%d", &escolha);
	while(loop == 0)
	{
		idioma(escolha);
		
		if ( loop == 0)
		{
			idioma(escolha);
			printf("\n\nMenu? \n\n<0> Sim\n\n");
			scanf ("%d", &loop);
			if(loop == 0)
			{
				main();
			}else
			{
				system("exit");
			}
		}
		else
		{
			return EXIT_SUCCESS;
		}
	
	}
	return EXIT_SUCCESS;
}

 

 

Este programa exibe o menu para que possa se escolher a opção, mostra a mensagem e logo depois pergunta ao usuário se quer repetir as operações novamente.
Criei a função void idioma( int a ) que entra com um argumento e checa o inteiro e se corresponde com as opções definidas no bloco do switch. Por padrão se a opção selecionada não for as estabelecidas no menu, o programa solicita o usuário para entrar com um valor satisfatótio e retorna para o menu .

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.