Menu
Coddy logo textTech

Convertir a mayúsculas

Parte de la sección Lógica y Flujo del Journey de C de Coddy. Lección 23 de 63.

challenge icon

Desafío

Fácil

Amplía tu programa de utilidades de texto de la lección anterior para añadir la funcionalidad de conversión a mayúsculas. Tu programa debe:

  1. Pedir al usuario que introduzca una oración corta imprimiendo: Enter a sentence: (sin salto de línea al final)
  2. Declarar un arreglo de caracteres llamado sentence con 200 elementos para almacenar la entrada
  3. Usar scanf con el especificador de formato %s para leer una sola palabra del usuario
  4. Imprimir la palabra almacenada con el formato: You entered: [word]
  5. Usar strlen() para calcular el número total de caracteres de la palabra
  6. Imprimir el recuento de caracteres con el formato: Character count: [count]
  7. Imprimir la longitud usando strlen() con el formato: Length: [length]
  8. Recorrer cada carácter de la palabra usando un bucle para contar las vocales
  9. Para cada carácter, comprobar si es una vocal (a, e, i, o, u) tanto en minúscula como en mayúscula
  10. Mantener un recuento acumulado de las vocales encontradas
  11. Imprimir el recuento de vocales con el formato: Vowel count: [count]
  12. Imprimir Uppercase: y después usar un bucle para convertir e imprimir cada carácter de la palabra a mayúscula mediante la función toupper()

Recuerda incluir la cabecera <string.h> para usar la función strlen() y la cabecera <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 por uno: printf("%c", toupper(sentence[i]));

Importante: El aviso 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 con 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:

Programming

Tu salida debe ser:

Enter a sentence: You entered: Programming
Character count: 11
Length: 11
Vowel count: 3
Uppercase: PROGRAMMING

Este desafío se basa en la lección anterior al añadir la funcionalidad de conversión a mayúsculas mediante la función toupper() de la biblioteca <ctype.h>. Deberás usar un bucle para recorrer cada carácter de la cadena y convertirlo a mayúscula; después, imprime 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 Lógica y Flujo

Practica por tu cuenta: Compilador de C online