C Academy · Aula

A biblioteca ctype

isdigit, isalpha, toupper.

Aula 2 de 413 etapas

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, isupper e islower.
  • Converter com toupper e tolower.
  • Sempre passar valores convertidos para unsigned char para evitar comportamento indefinido.
Grátis para começar

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.

Todas as aulas deste curso

  1. Caracteres como inteiros
  2. A biblioteca ctype
  3. Lendo caracteres
  4. Criando utilitários para caracteres
← Voltar para C Academy