Creación de utilidades para caracteres
Ejemplos prácticos
Creación de utilidades para caracteres es una lección gratuita de C Academy en CoddyKit. Esta es la lección 4 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.
Combinar lo que sabe
Ahora puede crear pequeñas utilidades prácticas para caracteres combinando la aritmética de char, la biblioteca ctype y los bucles sobre cadenas.
Escribamos algunos auxiliares habituales.
#include <stdio.h>
#include <ctype.h>
int main(void) {
char c = 'g';
printf("Upper: %c\n", toupper(c));
return 0;
}Contar vocales
Un contador de vocales comprueba cada carácter frente al conjunto a, e, i, o, u, en mayúsculas o minúsculas.
#include <stdio.h>
#include <ctype.h>
int count_vowels(const char *s) {
int n = 0;
for (int i = 0; s[i]; i++) {
char c = tolower(s[i]);
if (c=='a'||c=='e'||c=='i'||c=='o'||c=='u') n++;
}
return n;
}
int main(void) {
printf("%d\n", count_vowels("Education"));
return 0;
}Invertir una cadena
Intercambie los caracteres de ambos extremos avanzando hacia el centro para invertir una cadena en el mismo lugar.
#include <stdio.h>
#include <string.h>
int main(void) {
char s[] = "hello";
int n = strlen(s);
for (int i = 0; i < n / 2; i++) {
char tmp = s[i];
s[i] = s[n-1-i];
s[n-1-i] = tmp;
}
printf("%s\n", s);
return 0;
}Comprobar un palíndromo
Un palíndromo se lee igual de izquierda a derecha que de derecha a izquierda. Compare las posiciones simétricas hasta encontrarse.
#include <stdio.h>
#include <string.h>
int is_palindrome(const char *s) {
int i = 0, j = strlen(s) - 1;
while (i < j) {
if (s[i] != s[j]) return 0;
i++; j--;
}
return 1;
}
int main(void) {
printf("%d\n", is_palindrome("level"));
printf("%d\n", is_palindrome("world"));
return 0;
}Alternar mayúsculas y minúsculas
Una función para alternar mayúsculas y minúsculas convierte las mayúsculas en minúsculas y viceversa, sin modificar los caracteres que no son letras.
#include <stdio.h>
#include <ctype.h>
int main(void) {
char s[] = "Hello World";
for (int i = 0; s[i]; i++) {
if (isupper(s[i])) s[i] = tolower(s[i]);
else if (islower(s[i])) s[i] = toupper(s[i]);
}
printf("%s\n", s);
return 0;
}Eliminar los caracteres que no son dígitos
Conserve únicamente los caracteres de dígito de una cadena; esto resulta útil para limpiar números de teléfono.
#include <stdio.h>
#include <ctype.h>
int main(void) {
char *s = "(555) 123-4567";
for (int i = 0; s[i]; i++) {
if (isdigit((unsigned char)s[i])) putchar(s[i]);
}
putchar('\n');
return 0;
}atoi manual
Convierta una cadena numérica en un entero acumulando cada dígito: multiplique por 10 el total acumulado y sume el valor del dígito.
#include <stdio.h>
#include <ctype.h>
int my_atoi(const char *s) {
int n = 0;
for (int i = 0; isdigit((unsigned char)s[i]); i++) {
n = n * 10 + (s[i] - '0');
}
return n;
}
int main(void) {
printf("%d\n", my_atoi("427") + 3);
return 0;
}Contar palabras
Cuente las palabras detectando las transiciones de un espacio en blanco a un carácter que no sea espacio en blanco.
#include <stdio.h>
#include <ctype.h>
int main(void) {
char *s = "the quick brown fox";
int words = 0, in_word = 0;
for (int i = 0; s[i]; i++) {
if (isspace((unsigned char)s[i])) in_word = 0;
else if (!in_word) { in_word = 1; words++; }
}
printf("words = %d\n", words);
return 0;
}Poner palabras en mayúscula inicial
Convierta en mayúscula la primera letra de cada palabra poniendo en mayúscula cualquier letra que siga a un espacio en blanco o que esté al principio de la cadena.
#include <stdio.h>
#include <ctype.h>
int main(void) {
char s[] = "hello there friend";
int start = 1;
for (int i = 0; s[i]; i++) {
if (isspace((unsigned char)s[i])) start = 1;
else { if (start) s[i] = toupper(s[i]); start = 0; }
}
printf("%s\n", s);
return 0;
}Un cifrado ROT13
ROT13 desplaza cada letra 13 posiciones, dando la vuelta al llegar al final del alfabeto. Aplicarlo dos veces restaura el original.
#include <stdio.h>
#include <ctype.h>
int main(void) {
char s[] = "Hello";
for (int i = 0; s[i]; i++) {
char c = s[i];
if (isupper(c)) s[i] = 'A' + (c - 'A' + 13) % 26;
else if (islower(c)) s[i] = 'a' + (c - 'a' + 13) % 26;
}
printf("%s\n", s);
return 0;
}Frecuencia de un carácter
Cuente cuántas veces aparece un carácter específico en una cadena mediante un bucle sencillo y una comparación.
#include <stdio.h>
int main(void) {
char *s = "mississippi";
char target = 's';
int count = 0;
for (int i = 0; s[i]; i++) {
if (s[i] == target) count++;
}
printf("'%c' appears %d times\n", target, count);
return 0;
}Comprobación rápida
Ponga a prueba sus habilidades para crear utilidades de caracteres.
Resumen
Ha creado utilidades prácticas para caracteres:
- Contar vocales, palabras y la frecuencia de los caracteres.
- Invertir cadenas y comprobar palíndromos.
- Alternar y aplicar mayúsculas y minúsculas.
- Implementar un
atoimanual y un cifrado ROT13.
Preguntas frecuentes
¿La lección «Creación de utilidades para caracteres» es gratis?
Sí — el texto completo de «Creación de utilidades para caracteres» 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 «Creación de utilidades para caracteres»?
Ejemplos prácticos 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 4 de 4.
¿Cuánto tiempo toma la lección «Creación de utilidades para caracteres»?
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