Informática, perguntado por Pablo0906, 11 meses atrás

Por que na hora do meu programa escrever o caractere 'ã' ele substitui por um caractere estranho?

Aqui o algoritmo em Linguagem C:
(Quero concatenar as palavras Pão e Mortadela para que a string seja impressa assim:

Pão mortadela

#include
#include
#include
int main(){
system("cls");

char palavra1[]={' P ' , ' ã ', ' o ' , ' '};
char palavra2 []={' m ' , ' o ' , ' r ' , ' t ' , ' a ' , ' d ' , ' e ' , ' l ' , ' a '};
char novapalavra[13];
int i=0,c=0,n;

for(n=0;n<=12;n++){

if(n<4){
novapalavra[n]=palavra1[i];
i++;
}

else{
novapalavra[n]=palavra2[c];
c++;
}
}

for(n=0;n<=12;n++)
printf("%c",novapalavra[n]);

}

Soluções para a tarefa

Respondido por AlemaoBR10
0

Resposta:

A linguagem C por padrão não possui suporte a ABNT2.

Explicação:

Você terá que usar a biblioteca necessária para poder utilizar os acentos em seu código, que no caso seria a locale.h.

Chamamos de “localizar” um programa quando fazemos a adaptação deste às características de uma determinado idioma ou de uma região.

A linguagem C utiliza o arquivo de cabeçalho locale.h para implementar a localização de programas.

Veremos dois exemplos para permitir suporte a língua portuguesa. A utilização do arquivo locale.h  e da função setlocale() configurada adequadamente vai garantir que caracteres como “ç” e acentuação sejam exibidos normalmente em nosso programa.

#include <stdio.h>

#include <stdlib.h>

#include <locale.h> //necessário para usar setlocale

int main(void)

{

 printf("\n****** Verificando a localidade corrente ********\n\n");

 printf ("Localidade corrente: %s\n", setlocale(LC_ALL,NULL) );

 printf("Não é possível usar acentuação ou ç corretamente…\n\n");

 

 printf("\n****** Alterando para a localidade do sistema ********\n\n");

 

 //alterando para o padrão do sistema operacional

 printf("A localidade corrente agora é %s \n",setlocale(LC_ALL,""));

 printf("Agora não tem mais problema algum!\n");

 printf("Já posso usar acentuação e também o caracter ç…\n\n\n");

 

 system("pause");

 return 0;

}

Também é possível configurar o idioma português da seguinte forma:

setlocale(LC_ALL, “Portuguese”);

Vejamos um segundo exemplo.

#include <stdio.h>

#include <stdlib.h>

#include <locale.h>

int main(void)

{

 setlocale(LC_ALL, "Portuguese");

 printf("Utilizando caracteres e acentuação da língua portuguesa!\n\n");

 

 system("pause");

 return 0;

}

Perguntas interessantes