adorei a aula fiz tudo direitinho, deu certo. mas como eu não sou uma pessoa conformada, tenho uma duvida senhor(s), como seria um programa assim:
#include #include
int main () { char codigo; codigo 'a' =alfa, codigo 'b'=bravo; system ("pause"); return 0; } para que o cidadão digitasse a printa alfa e se digitar alfa printa a como ficaria. desde ja obrigado mente livre!!!
24 de março de 2016 às 22:06
Anônimo disse...
Olá, o assunto sobre os acentos como:ç, é ê etc., já está resolvido!
29 de março de 2016 às 07:29
Anônimo disse...
Olá meu amigo! primeiramente gostaria de Agradecer as aulas, e sem segundo gostaria de tirar uma dúvida, tentei criar um programa que transforma o nome que a pessoa digitar e números na ordem do alfabeto. Exemplo a = 1, b = 2, c = 3, e assim em diante. Tentei com o char e com a função scanf, mais não consegui. Poderia me ajudar?
Para ler e imprimir na tela uma palavra inteira sem precisa usar tantos "%c", basta fazer como fiz aqui: #include main (){ char vendedor[9]; scanf("%s",&vendedor); printf("%s", vendedor);
}
o nome que você digitar vai aparecer na tela normalmente.
em 1º lugar Grato pelas explicações amigo, estou retomando meus estudos com C, pois estou precisando mexer em um projeto open source e estou meio enferrujado nessa linguagem. Só querendo compartilhar um exemplo que faço com qualquer linguagem quando estou estudando e não vi um comentário disso ainda nesse post é que o encoding do terminal pode gerar uma dúvida p/ quem está começando a programar.
int main() { for (int i = 0; i <= 255; i++) { printf("Valor: %d\t Char:%c\n", i, i); } }
Como estou em um mac e usando um terminal com encoding UTF-8 , os valores acima de 127 aparecem como "?". Para poder ver os próximos até 255 assim como os caracteres acentuados, o encoding deve ser trocado para Western ISO Latin1, o que deve acontecer para quem já está com o SO em português que não é meu caso.
int main() { printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c", 80,97,114,97,98,101,110,115,44,32,118,111,99,101,32,100,101,115,99,111,98,114,105,117,32,111,32,115,101,103,114,101,100,111);
}
Minha indagação é quanto ao que errei. Porque está errado?
9 de setembro de 2018 às 22:08
Agora que você já sabe como lidar com inteiros e decimais na linguagem C, está na hora de estudarmos como escrever caracteres.
Leia esse conteúdo offline: Baixar Apostila C Progressivo
[Image]Obter certificado do curso C Progressivo
Como declarar o tipo char em C
Para guardar uma letra no seu char, temos que fazer uma operação especial: sempre colocar o caractere entre aspas simples.
Por exemplo, para guardar a letra C, escrevemos:
char letra = 'C';
A sintaxe linguagem de programação é case sensitive, ou seja, minúsculo é diferente de maiúsculo.
Por exemplo:
Note 3 coisas interessante que mostramos: 1 - letra1=' '
Sim, espaço também é caractere!
2 - Repetimos letra8 duas vezes no printf, por quê?
Ora, a letra 's' se repete duas vezes na frase: "C Progressivo".
Em vez de gastar memória à toa para representar o mesmo caractere, o certo é repetir duas vezes o char.
3 - letra12='\n'
Sim, a quebra de linha, ou ENTER, é um caractere também!
Notou também a trabalheira e o tanto de código, apenas pra escrever isso? Inviável!
Em breve, em nosso curso C Progressivo, iremos aprender sobre strings, ou vetores de caracteres, que é uma maneira bem mais simples de se escrever e manipular textos em C.
A tabela ASCII em C
Digite e rode o seguinte programa em C:
#include <stdio.h>
int main()
{
char ascii = 67;
printf("%c%",ascii);
}
Estranho o resultado, não? Inicializamos um caractere sem aspas simples e digitamos dois números?
Se notar bem, não inicializamos o char com um caractere, pois não usamos aspas simples, iniciamos como se char fosse um inteiro.
Por que isso?
Ver char como inteiros não seria errado.
O que acontece é que cada caractere em programação recebe um número, como se fosse uma identificação.
A letra 'C' por exemplo, tem o número 67 como sua identificação.
Ou seja, para o computador:
char ascii = 67;
ou char ascii = 0x43;
ou char ascii = 'C';
É a mesma coisa. No primeiro caso, representamos o caractere como um número decimal.
No segundo, o caractere é representado pro um número no formato hexadecimal.
Altere o número para outro e veja os resultados.
Você verá que cada caractere, incluindo o ENTER, TAB ou aviso sonoro é identificado com um número.
A tabela ASCII nada mais é que uma lista completa dos números que identificam os caracteres, veja só:
[Image]
Podemos fazer o contrário também. Dentro do printc colocar os %c, e números após a vírgula.
Por exemplo, a letra 'o' pode ser representada pelo número 111 e a letra 'i' pode ser representada po 105.
Então podemos escrever 'oi' da seguinte maneira:
#include <stdio.h>
int main()
{
printf("%c%c ",111,105);
}
Sim: 111,105 quer dizer 'oi'. Legal, não?
Agora você já pode escrever cartas e códigos secreto, e só quem sabe a poderosa linguagem C que pode ler.
Por exemplo, descubra o que está dito no programa abaixo:
#include <stdio.h>
int main()
{
printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",
80,97,114,97,98,101,110,115,44,32,118,111,99,101,32,100,101,115,99,111,98,114,105,117,32,111,32,115,101,103,114,101,100,111);
}
Exercício:
Escreva seu nome usando apenas a função printf, %c e números. Use a tabela ASCII.
postado por Programação Progressiva às 08:57 em 6 de dez. de 2012
25 Comentários
Fechar esta janela Ir para formulário de comentárioJaide Ambrosio
Sensacional. As possibilidades são inúmeras. :)
11 de junho de 2014 às 07:32
Cada lição vai ficando cada vez mais interessante xD
Gostei muito do curso, otima iniciativa.
11 de julho de 2014 às 04:32
Ótimo artigo, gostei muito!!
Bem interessante isso.
11 de julho de 2014 às 04:34
até agora eu não consegui escrever um caractere com acento dentro do printf, por exemplo "é" eu não consegui exibir.
Aproveitando como se utiliza um loop e um delay? eu uso no arduino mas acho que tenho que utilizar um #include aqui e não sei como.
De resto parabens pelo curso. Obrigado.
28 de julho de 2014 às 15:27
Do nada meu antivpirus começa a bloquear o acesso a pasta.Alguém sabe como resolver?
13 de agosto de 2014 às 22:52
E as strings podem representar um caractere ou uma coleção deles qual a utilidade do tipo char?
É só para economizar memoria ou este tipo tem alguma função mais interesante que eu não consegui notar?
1 de outubro de 2014 às 15:48
ótimo curso em c, bela iniciativa...
7 de outubro de 2014 às 19:36
#include
int main()
{
printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",
80,97,114,97,98,101,110,115,32,112,101,108,97,32,105,110,105,99,105,97,116,105,118,97,44,32,
79,98,114,105,103,97,100,111,32,80,101,108,111,32,99,117,114,115,111,46);}
28 de março de 2015 às 15:16
comigo essa etapa do curso nao funcionou! Dá sempre erro. alguém pode me responder por que?
15 de maio de 2015 às 10:23
eu achei interessante porque consegui colocar caracteres acentuados
11 de junho de 2015 às 14:39
ola
poderia me informa qual o meu erro por aparece no final um L como se estivesse
elevando o I no L
18 de junho de 2015 às 21:12
//c.progressivo.net
#include
int main()
{
//posso usar tanto Html(80 = letra P) como Hexadecimais(0x4f = letra O)
printf("%c%c%c%c%c%c%c%c%c", 80, 97, 98, 108, 111, 0x4F, 0x61, 0x6b, 0x73);
}
17 de novembro de 2015 às 20:46
Gostei do curso, excelente bem explicativo e com bons exercícios, estou me saindo bem.
#include
int main()
{
printf("%c%c%c%",01,27,34);
printf("%c%c%c%c%c%c",100,101,98,111,114,97);
}
1 de dezembro de 2015 às 14:22
Ah! usa localidade com a biblioteca locale.h, bem mais fácil se for somente o caso de exibir texto acentuado.
3 de dezembro de 2015 às 05:00
Obrigado! Estou aprendendo muito com vcs!
25 de dezembro de 2015 às 21:29
adorei a aula fiz tudo direitinho, deu certo.
mas como eu não sou uma pessoa conformada, tenho uma duvida senhor(s),
como seria um programa assim:
#include
#include
int main ()
{
char codigo;
codigo 'a' =alfa, codigo 'b'=bravo;
system ("pause");
return 0;
}
para que o cidadão digitasse a printa alfa e se digitar alfa printa a como ficaria. desde ja obrigado mente livre!!!
24 de março de 2016 às 22:06
Olá, o assunto sobre os acentos como:ç, é ê etc., já está resolvido!
29 de março de 2016 às 07:29
Olá meu amigo! primeiramente gostaria de Agradecer as aulas, e sem segundo gostaria de tirar uma dúvida, tentei criar um programa que transforma o nome que a pessoa digitar e números na ordem do alfabeto. Exemplo a = 1, b = 2, c = 3, e assim em diante. Tentei com o char e com a função scanf, mais não consegui. Poderia me ajudar?
27 de abril de 2016 às 12:51
Muito boom (y)
#include
int main()
{
char letra1 = 'M', letra2 = 'a', letra3 = 82, letra4 = 67, letra5 = 'e', letra6 = 'l', letra7 = 65;
printf ("meu nome eh: %c%c%c%c%c%c%c", letra1, letra2, letra3, letra4, letra5, letra6,letra7);
}
31 de maio de 2016 às 19:14
Para ler e imprimir na tela uma palavra inteira sem precisa usar tantos "%c", basta fazer como fiz aqui:
#include
main (){
char vendedor[9];
scanf("%s",&vendedor);
printf("%s", vendedor);
}
o nome que você digitar vai aparecer na tela normalmente.
10 de outubro de 2016 às 06:20
"Parabens, voce descobriu o segredo" kkkkkkk tava facil de mais
16 de abril de 2017 às 17:06
em 1º lugar Grato pelas explicações amigo, estou retomando meus estudos com C, pois estou precisando mexer em um projeto open source e estou meio enferrujado nessa linguagem.
Só querendo compartilhar um exemplo que faço com qualquer linguagem quando estou estudando e não vi um comentário disso ainda nesse post é que o encoding do terminal pode gerar uma dúvida p/ quem está começando a programar.
int main()
{
for (int i = 0; i <= 255; i++)
{
printf("Valor: %d\t Char:%c\n", i, i);
}
}
Como estou em um mac e usando um terminal com encoding UTF-8 , os valores acima de 127 aparecem como "?". Para poder ver os próximos até 255 assim como os caracteres acentuados, o encoding deve ser trocado para Western ISO Latin1, o que deve acontecer para quem já está com o SO em português que não é meu caso.
Parabéns pela iniciativa.
25 de maio de 2017 às 20:44
A descrição da tabela ASCII foi incrível!
5 de dezembro de 2017 às 14:03
int main(){
int lan;
lan=0;
for (lan=10; lan<=256; lan=lan+4){
printf ("As minhas Redes Sao %d\n\n ",lan);
}
printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n\n",77,97,114,105,97,32,65,109,111,114,32,68,111,32,78,103,111,108,97);
printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",
80,97,114,97,98,101,110,115,32,76,85,67,65,83,44,32,118,111,99,101,32,100,101,115,99,111,98,114,105,117,32,111,32,115,101,103,114,101,100,111);
return 0;
}
9 de julho de 2018 às 04:17
Baseado na explicação da página:
#include
int main()
{
char ascii = 67;
printf("%c%",ascii);
}
Eu fiz o seguinte código:
//Retorna a mensagem: "[Error] expected identifier or '('before numeric constant"
#include
#include
#include
#include
#include
#include
//Exercício: Escreva seu nome usando apenas a função printf, %c e números. Use a tabela ASCII.
main (void)
{
setlocale(LC_ALL,"portuguese");
system ("color 3E");
char ascii = 74, 101, 97, 110, 32, 67, 97, 114, 108, 111, 115;
printf("%c% %c% %c% %c% %c% %c% %c% %c% %c% %c% %c%", ascii);
return 0;
}
BASEADO NESSE ACERTEI:
#include
int main()
{
printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",
80,97,114,97,98,101,110,115,44,32,118,111,99,101,32,100,101,115,99,111,98,114,105,117,32,111,32,115,101,103,114,101,100,111);
}
Minha indagação é quanto ao que errei. Porque está errado?
9 de setembro de 2018 às 22:08