A biblioteca ctype
isdigit, isalpha, toupper.
A biblioteca ctype é uma aula grátis de C Academy no CoddyKit. Esta é a aula 2 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.
O que é ctype.h
O cabeçalho <ctype.h> fornece funções para classificar e converter caracteres.
Ele evita que você precise memorizar intervalos ASCII e escrever comparações manuais.
#include <stdio.h>
#include <ctype.h>
int main(void) {
printf("Is 'A' alpha? %d\n", isalpha('A'));
return 0;
}isdigit
isdigit(c) retorna um valor diferente de zero se c for um caractere de dígito entre '0' e '9', e 0 caso contrário.
#include <stdio.h>
#include <ctype.h>
int main(void) {
printf("isdigit('7') = %d\n", isdigit('7'));
printf("isdigit('x') = %d\n", isdigit('x'));
return 0;
}isalpha
isalpha(c) retorna um valor diferente de zero se c for uma letra, maiúscula ou minúscula.
Para dígitos e símbolos, retorna 0.
#include <stdio.h>
#include <ctype.h>
int main(void) {
printf("isalpha('G') = %d\n", isalpha('G'));
printf("isalpha('3') = %d\n", isalpha('3'));
return 0;
}isalnum e isspace
isalnum(c) é verdadeiro para letras ou dígitos. isspace(c) é verdadeiro para espaços em branco, como espaço, tabulação e nova linha.
#include <stdio.h>
#include <ctype.h>
int main(void) {
printf("isalnum('9') = %d\n", isalnum('9'));
printf("isspace(' ') = %d\n", isspace(' '));
printf("isspace('a') = %d\n", isspace('a'));
return 0;
}isupper e islower
isupper(c) verifica se há uma letra maiúscula, e islower(c), se há uma letra minúscula.
Essas funções são úteis antes de decidir se o caractere deve ser convertido.
#include <stdio.h>
#include <ctype.h>
int main(void) {
printf("isupper('A') = %d\n", isupper('A'));
printf("islower('A') = %d\n", islower('A'));
return 0;
}ispunct
ispunct(c) retorna um valor diferente de zero para caracteres de pontuação imprimíveis, como !, ? e ,, que não sejam letras, dígitos ou espaços.
#include <stdio.h>
#include <ctype.h>
int main(void) {
printf("ispunct('!') = %d\n", ispunct('!'));
printf("ispunct('a') = %d\n", ispunct('a'));
return 0;
}toupper
toupper(c) retorna a versão maiúscula de uma letra. Se c não for uma letra minúscula, retorna c sem alterações.
#include <stdio.h>
#include <ctype.h>
int main(void) {
printf("%c\n", toupper('h'));
printf("%c\n", toupper('5'));
return 0;
}tolower
tolower(c) retorna a versão minúscula de uma letra maiúscula ou o caractere sem alterações se ele não for maiúsculo.
#include <stdio.h>
#include <ctype.h>
int main(void) {
printf("%c\n", tolower('H'));
printf("%c\n", tolower('z'));
return 0;
}Classificando uma cadeia de caracteres
Percorra uma cadeia de caracteres e use as funções de ctype para contar dígitos e letras.
#include <stdio.h>
#include <ctype.h>
int main(void) {
char *s = "abc123";
int letters = 0, digits = 0;
for (int i = 0; s[i]; i++) {
if (isalpha(s[i])) letters++;
if (isdigit(s[i])) digits++;
}
printf("letters=%d digits=%d\n", letters, digits);
return 0;
}Convertendo uma cadeia inteira para maiúsculas
Combine toupper com um laço para converter uma cadeia inteira para maiúsculas, caractere por caractere.
#include <stdio.h>
#include <ctype.h>
int main(void) {
char s[] = "Hello";
for (int i = 0; s[i]; i++) {
s[i] = toupper(s[i]);
}
printf("%s\n", s);
return 0;
}Passe int, não char negativo
As funções de ctype recebem um int que deve ser representável como unsigned char ou ser EOF.
Passar diretamente um char negativo resulta em comportamento indefinido. Quando houver dúvida, faça a conversão para unsigned char.
#include <stdio.h>
#include <ctype.h>
int main(void) {
char c = 'Q';
int result = isalpha((unsigned char)c);
printf("safe isalpha = %d\n", result);
return 0;
}Verificação rápida
Teste seus conhecimentos sobre a biblioteca ctype.
Recapitulação
A biblioteca <ctype.h> permite:
- Classificar com
isdigit,isalpha,isalnum,isspace,ispunct,isuppereislower. - Converter com
toupperetolower. - Sempre passar valores convertidos para
unsigned charpara evitar comportamento indefinido.
Aprenda C com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 39
- Aulas
- 144
Perguntas Frequentes
A aula “A biblioteca ctype” é grátis?
Sim — o texto completo de “A biblioteca ctype” é 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 “A biblioteca ctype”?
isdigit, isalpha, toupper. 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 2 de 4.
Quanto tempo leva a aula “A biblioteca ctype”?
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.