Jump to content

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


Recommended Posts

Posted

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...
}

Posted

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";
  }
}
Posted

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 !!!
}
Posted

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 ...

Posted

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.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.