Convertir a mayúsculas
Parte de la sección Logic & Flow del Journey de C de Coddy — lección 23 de 63.
Desafío
FácilExtiende tu programa de utilidad de texto de la lección anterior para añadir la funcionalidad de conversión a mayúsculas. Tu programa debe:
- Solicitar al usuario que introduzca una oración corta imprimiendo:
Enter a sentence:(sin salto de línea al final) - Declarar un arreglo de caracteres llamado
sentencecon 200 elementos para almacenar la entrada - Usar
scanfcon el especificador de formato%spara leer una sola palabra del usuario - Imprimir la palabra almacenada en el formato:
You entered: [word] - Usar
strlen()para calcular el número total de caracteres en la palabra - Imprimir el recuento de caracteres en el formato:
Character count: [count] - Imprimir la longitud usando
strlen()en el formato:Length: [length] - Iterar a través de cada carácter en la palabra usando un bucle para contar las vocales
- Para cada carácter, verificar si es una vocal (a, e, i, o, u) tanto en minúscula como en mayúscula
- Mantener un recuento acumulado de las vocales encontradas
- Imprimir el recuento de vocales en el formato:
Vowel count: [count] - Imprimir
Uppercase:y luego usar un bucle para convertir e imprimir cada carácter de la palabra a mayúsculas usando la funcióntoupper()
Recuerda incluir el encabezado <string.h> para usar la función strlen() y el encabezado <ctype.h> para usar la función toupper().
Acerca de toupper():
La función toupper() de <ctype.h> convierte un solo carácter a su equivalente en mayúscula. Si el carácter ya está en mayúscula o no es una letra, se devuelve sin cambios.
Ejemplo: toupper('a') devuelve 'A', y toupper('Z') devuelve 'Z'.
Puedes usarla dentro de un bucle para convertir cada carácter uno a la vez: printf("%c", toupper(sentence[i]));
Importante: El mensaje Enter a sentence: no debe ir seguido de un salto de línea. Usa printf("Enter a sentence: "); sin \n.
Tu salida debe mostrar los resultados en el siguiente formato:
Enter a sentence: You entered: [word]
Character count: [count]
Length: [length]
Vowel count: [count]
Uppercase: [WORD]Por ejemplo, si la entrada es:
ProgrammingTu salida debería ser:
Enter a sentence: You entered: Programming
Character count: 11
Length: 11
Vowel count: 3
Uppercase: PROGRAMMINGEste desafío se basa en la lección anterior al añadir la funcionalidad de conversión a mayúsculas utilizando la función toupper() de la biblioteca <ctype.h>. Necesitarás usar un bucle para iterar a través de cada carácter en la cadena y convertirlo a mayúsculas, para luego imprimir el resultado transformado.
Pruébalo tú mismo
#include <stdio.h>
#include <string.h>
int main() {
printf("Enter a sentence: \n");
char sentence[200];
scanf("%s", sentence);
printf("You entered: %s\n", sentence);
int char_count = strlen(sentence);
printf("Character count: %d\n", char_count);
int length = strlen(sentence);
printf("Length: %d\n", length);
int vowel_count = 0;
for (int i = 0; i < strlen(sentence); i++) {
char c = sentence[i];
if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' ||
c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U') {
vowel_count++;
}
}
printf("Vowel count: %d\n", vowel_count);
return 0;
}Todas las lecciones de Logic & Flow
1Fundamentos de Punteros
¿Qué es un puntero?Declaración de punterosEl operador de dirección (&)El operador de desreferencia (*)Punteros NULLResumen: Conceptos básicos de punteros4Proyecto: Utilidad de texto simple
Descripción general del proyectoContar caracteres2Punteros y Arrays
Nombres de Arrays como PunterosElementos de un Array - PunterosAritmética de PunterosComparación de PunterosResumen: Recorrido de Arrays con Punteros5Punteros y funciones
Paso por valorPasar punteros a funcionesModificar variables mediante punterosUn ejemplo clásico: Intercambio (Swap)Pasar arrays a funcionesResumen: Argumentos de punteros a funciones3Arreglos de caracteres y cadenas
Cadenas como arreglos de charEl terminador nuloEntrada de cadenas con scanfUso de strlen()Uso de strcpy()Uso de strcat()Uso de strcmp()Resumen: Funciones básicas de cadenas