0Pricing
C Academy · Lección

La biblioteca ctype

isdigit, isalpha, toupper

La biblioteca ctype es una lección gratuita de C Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de C Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de C Academy incluye 4 lecciones en total.

Qué es ctype.h

La cabecera <ctype.h> proporciona funciones para clasificar y convertir caracteres.

Le evita tener que memorizar rangos ASCII y escribir comparaciones manuales.

#include <stdio.h>
#include <ctype.h>

int main(void) {
    printf("Is 'A' alpha? %d\n", isalpha('A'));
    return 0;
}

isdigit

isdigit(c) devuelve un valor distinto de cero si c es un carácter de dígito '0'-'9', y 0 en caso contrario.

#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) devuelve un valor distinto de cero si c es una letra, ya sea mayúscula o minúscula.

Los dígitos y símbolos devuelven 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) es verdadero para letras o dígitos. isspace(c) es verdadero para espacios en blanco, como el espacio, el tabulador y el salto de línea.

#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) comprueba si se trata de una letra mayúscula e islower(c) si se trata de una minúscula.

Estas funciones resultan útiles antes de decidir si se debe convertir el uso de mayúsculas y minúsculas.

#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) devuelve un valor distinto de cero para caracteres de puntuación imprimibles, como !, ? y ,, que no son letras, dígitos ni espacios.

#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) devuelve la versión en mayúscula de una letra. Si c no es una letra minúscula, devuelve c sin cambios.

#include <stdio.h>
#include <ctype.h>

int main(void) {
    printf("%c\n", toupper('h'));
    printf("%c\n", toupper('5'));
    return 0;
}

tolower

tolower(c) devuelve la versión en minúscula de una letra mayúscula, o el carácter sin cambios si no es una mayúscula.

#include <stdio.h>
#include <ctype.h>

int main(void) {
    printf("%c\n", tolower('H'));
    printf("%c\n", tolower('z'));
    return 0;
}

Clasificar una cadena

Recorra una cadena y use las funciones de ctype para contar los dígitos y las 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;
}

Convertir una cadena completa a mayúsculas

Combine toupper con un bucle para convertir una cadena completa a mayúsculas, carácter por carácter.

#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;
}

Pasar int, no un char negativo

Las funciones de ctype reciben un int que debe poder representarse como unsigned char o ser EOF.

Pasar directamente un char negativo provoca un comportamiento indefinido. Cuando tenga dudas, conviértalo a 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;
}

Comprobación rápida

Ponga a prueba sus conocimientos de la biblioteca ctype.

Resumen

La biblioteca <ctype.h> le permite:

  • Clasificar con isdigit, isalpha, isalnum, isspace, ispunct, isupper e islower.
  • Convertir con toupper y tolower.
  • Pasar siempre valores convertidos a unsigned char para evitar un comportamiento indefinido.

Preguntas frecuentes

¿La lección «La biblioteca ctype» es gratis?

Sí — el texto completo de «La biblioteca ctype» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de C Academy, actualiza a CoddyKit PRO. El curso de C Academy incluye 4 lecciones en total.

¿Qué aprenderé en «La biblioteca ctype»?

isdigit, isalpha, toupper Practicas C Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar C Academy?

No se requiere experiencia previa. C Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «La biblioteca ctype»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de C Academy?

Sí. Cada lección de C Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Caracteres como enteros
  2. La biblioteca ctype
  3. Lectura de caracteres
  4. Creación de utilidades para caracteres
← Volver a C Academy