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,isuppereislower. - Convertir con
toupperytolower. - Pasar siempre valores convertidos a
unsigned charpara 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
- Caracteres como enteros
- La biblioteca ctype
- Lectura de caracteres
- Creación de utilidades para caracteres