• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

JoBlack

[Resolvido] [Dúvida] String em variável

7 mensagens neste tópico

Boas

Preciso da V. ajuda para o seguinte:

Tenho uma variável  que por defeito está definida como

char idioma[]="portugues.txt";

Fiz a seguinte função para a alterar mediante a escolha do utilizador, mas obtenho sempre erro no código precisamente na linha onde tento alterar o valor da variável....

Podem-me ver onde errei s.f.f.

Obrigado


void menuidioma()
{
int a;

system("CLS");

printf("\n\n\n1 - Portugues");
printf("\n2 - English");
scanf("%d",&a);
if (a=1)
  idioma="portugues.txt";  // o erro aparece aqui
else
   if(a=2) 
   idioma="ingles.txt";  // e aqui...
   else
   idioma="portugues.txt"; // e aqui...
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Penso que em C, após a abertura de quaquer condiçao ou ciclo é necessário implementarem-se as chavetas { e }

Tenta assim:

void menuidioma()
{
int a;

system("CLS");

printf("\n\n\n1 - Portugues");
printf("\n2 - English");
scanf("%d",&a);
if (a=1) {
  idioma="portugues.txt";
}
else
   if(a=2) {
   idioma="ingles.txt";
}
   else {
   idioma="portugues.txt";
  }
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

no primeiro if não é necessário porque só tem uma instrução agora no else precisas de chavetas

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Aqui está a resposta:

#include <stdio.h> // as bibliotecas...
#include <stdlib.h>

void main()
{
int a;
char idioma[20]; // esqueceste de inicializar a variavel

system("CLS");


printf("\n\n\n1 - Portugues");
printf("\n2 - English\n");
scanf("%d",&a);
if (a==1) // tem de ser ==, se não estas a atribuir o valor 1 'a variavel a e o if nao faz nada
	sprintf(idioma,"%s","portugues.txt"); // gosto muito de usar esta funcao, e' um printf para a variavel "idioma"
else if(a==2) 
	sprintf(idioma,"%s","ingles.txt");
else
	sprintf(idioma,"%s","portugues.txt");

printf("\n <%s> \n", idioma);
system("pause"); // podes apagar isto !!!
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado a todos, em especial ao brink@ero, resultou..... :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ainda n tenho muito esperiencia em c .... mas não é suposto quando queremos passar uma string para uma variavel fazer:

#include <string.h>

strcpy( variavel ,"string" );

Não é está maneira mais facil???.... desculpem se tiver a confundir alguma coisa ...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o dark_splinter está correcto

1º não são precisas as chavetas naquele caso que o JoBlack mostrou

2º a forma correcta é usando strcpy, ou então memcpy, também é muito usada por quem gosta de trabalhar com apontadores.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora