Exercícios Resolvidos de Funções scanf e printf

Ver Teoria

Enunciado

Faça um programa que leia um caractere inserido por um usuário e imprima esse mesmo caractere em sua forma decimal definida pela tabela ASCII.

Passo 1

A primeira coisa que devemos fazer para desenvolver esse programa é definir o escopo e incluir as bibliotecas necessárias.

Como de costume, iremos declarar a função main e como o programa irá realizar a leitura e impressão de dados também incluiremos a biblioteca padrão stdio, que é responsável por disponibilizar funções de entrada e saída de dados na linguagem C.

Passo 2

Agora nós iremos declarar a variável que irá armazenar o caractere que será inserido pelo usuário, nada melhor do que o tipo char para isso.

Passo 3

Com a variável pronta para armazenar o caractere que será inserido pelo usuário do programa, podemos requisitar a leitura desse dado. Para isso nós utilizaremos a função scanf.

Passo 4

Nesse momento do desenvolvimento, nós já temos uma variável responsável por armazenar o dado requisitado pela função scanf para o usuário.

Porém, nós não podemos apenas imprimir o dado armazenado pela variável da maneira convencional, pois isso acarretaria a impressão de um caractere e não do seu valor numérico referente na tabela ASCII.

Para resolver isso, nós utilizaremos os nossos conhecimentos sobre tipos primitivos de dados, onde sabemos que todo char se trata de um int.

Relembrando: todo caractere do tipo char nada mais é do um número inteiro interpretado pelo programa em forma de caractere. Todas essas interpretações estão definidas em uma tabela denominada ASCII.

Passo 5

Dessa forma, basta realizarmos a impressão da variável c a r a c t e r e passando para a função printf o identificador de um dado inteiro (%d) ao invés de um dado do tipo caractere (%c).

Isso fará com que o programa interprete o caractere armazenado na variável de tipo char como um número inteiro int.

E isso é exatamente o que nós queremos, uma vez que esse número inteiro é aquele que representa no tipo int o caractere anteriormente declarado no tipo char, assim como definido pela tabela ASCII.

Resposta

Ei, a resposta está no passo a passo :)