Caracteres como inteiros
Valores ASCII.
Caracteres como inteiros é uma aula grátis de C Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C Academy inclui 4 aulas no total.
Caracteres são números
Em C, um char é apenas um inteiro pequeno. Cada caractere tem um valor numérico definido pela tabela ASCII.
A letra 'A' é armazenada como o número 65, 'B' é 66, e assim por diante.
#include <stdio.h>
int main(void) {
char c = 'A';
printf("The character %c has value %d\n", c, c);
return 0;
}Imprimindo o valor ASCII
Use o especificador de formato %d para imprimir um char como seu valor inteiro e %c para imprimi-lo como caractere.
A mesma variável pode ser visualizada das duas formas.
#include <stdio.h>
int main(void) {
char letter = 'z';
printf("As char: %c\n", letter);
printf("As int: %d\n", letter);
return 0;
}Os dígitos também têm códigos
O caractere '0' não é o número 0. Ele tem o valor ASCII 48.
Os caracteres dos dígitos '0' a '9' ocupam, em ordem, os códigos de 48 a 57.
#include <stdio.h>
int main(void) {
printf("'0' = %d\n", '0');
printf("'9' = %d\n", '9');
return 0;
}Conversão de char para dígito
Como os dígitos são contíguos, você pode converter um caractere de dígito em seu valor numérico subtraindo '0'.
'7' - '0' é igual a 7.
#include <stdio.h>
int main(void) {
char d = '7';
int value = d - '0';
printf("The digit value is %d\n", value);
return 0;
}Aritmética com caracteres
Como os caracteres são inteiros, é possível fazer operações matemáticas com eles. Somar 1 a 'A' produz o código de 'B'.
Isso funciona porque as letras do alfabeto são contíguas em ASCII.
#include <stdio.h>
int main(void) {
char c = 'A';
char next = c + 1;
printf("After A comes %c\n", next);
return 0;
}Percorrendo o alfabeto
É possível percorrer de 'a' a 'z' usando um char como contador do laço.
O laço compara os códigos dos caracteres da mesma forma que compara números.
#include <stdio.h>
int main(void) {
for (char c = 'a'; c <= 'z'; c++) {
printf("%c", c);
}
printf("\n");
return 0;
}A diferença entre maiúsculas e minúsculas
As letras maiúsculas e minúsculas estão separadas por 32 em ASCII. 'a' vale 97 e 'A' vale 65.
Portanto, 'a' - 'A' é igual a 32.
#include <stdio.h>
int main(void) {
printf("'A' = %d\n", 'A');
printf("'a' = %d\n", 'a');
printf("Gap = %d\n", 'a' - 'A');
return 0;
}Conversão manual de maiúsculas e minúsculas
Sabendo que a diferença é 32, é possível converter letras minúsculas em maiúsculas subtraindo 32.
É exatamente isso que toupper faz internamente.
#include <stdio.h>
int main(void) {
char lower = 'm';
char upper = lower - 32;
printf("%c becomes %c\n", lower, upper);
return 0;
}Caracteres especiais
Os caracteres de controle também têm códigos. A nova linha '\n' vale 10, a tabulação '\t' vale 9 e o terminador nulo '\0' vale 0.
O caractere de espaço vale 32.
#include <stdio.h>
int main(void) {
printf("newline = %d\n", '\n');
printf("tab = %d\n", '\t');
printf("space = %d\n", ' ');
return 0;
}char armazena números pequenos
Um char normalmente armazena valores de -128 a 127 (com sinal) ou de 0 a 255 (sem sinal).
É possível armazenar inteiros pequenos diretamente em um char.
#include <stdio.h>
int main(void) {
char small = 100;
small = small + 5;
printf("small = %d\n", small);
return 0;
}Construindo um deslocamento de César
Combinando essas ideias, uma cifra de César simples desloca cada letra por uma quantidade fixa usando aritmética de caracteres.
Aqui, deslocamos uma letra três posições para a frente.
#include <stdio.h>
int main(void) {
char c = 'x';
char shifted = 'a' + (c - 'a' + 3) % 26;
printf("%c shifted by 3 = %c\n", c, shifted);
return 0;
}Verificação rápida
Teste sua compreensão dos caracteres como inteiros.
Recapitulação
Você aprendeu que, em C:
- Um
charé um inteiro pequeno que armazena um código ASCII. %co exibe como caractere, e%d, como número.- Os dígitos
'0'-'9'e as letras são contíguos, o que permite fazer operações aritméticas. c - '0'converte um char de dígito em seu valor, e a diferença entre maiúsculas e minúsculas é 32.
Perguntas Frequentes
A aula “Caracteres como inteiros” é grátis?
Sim — o texto completo de “Caracteres como inteiros” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C Academy, atualize para CoddyKit PRO. O curso de C Academy inclui 4 aulas no total.
O que vou aprender em “Caracteres como inteiros”?
Valores ASCII. Você pratica C Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar C Academy?
Nenhuma experiência prévia é necessária. C Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Caracteres como inteiros”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de C Academy?
Sim. Cada aula de C Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Caracteres como inteiros
- A biblioteca ctype
- Lendo caracteres
- Criando utilitários para caracteres