Resultado final
Parte de la sección Logic & Flow del Journey de C de Coddy — lección 24 de 63.
Desafío
FácilCompleta tu programa de utilidad de texto integrando todas las funciones que has construido en las lecciones anteriores en una única salida completa. Tu programa debe:
- Solicitar al usuario que introduzca una frase corta imprimiendo:
Enter a sentence:(sin salto de línea al final — usaprintf("Enter a sentence: "), noprintf("Enter a sentence: \n")) - 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 - Almacenar la palabra original en un arreglo de caracteres separado para fines de visualización
- Calcular el número total de caracteres usando
strlen() - Contar las vocales iterando a través de cada carácter y verificando si coincide con alguna vocal (a, e, i, o, u) tanto en minúsculas como en mayúsculas
- Convertir la palabra a mayúsculas usando la función
toupper()dentro de un bucle - Mostrar todos los resultados en un formato limpio y organizado con cada pieza de información en una línea separada
Recuerda incluir el encabezado <string.h> para las funciones de cadena y el encabezado <ctype.h> para las funciones de conversión de caracteres.
Tu salida debe mostrar todos los resultados en el siguiente formato exacto:
Enter a sentence: Original: [word]
Characters: [count]
Vowels: [count]
Uppercase: [WORD]Importante: El mensaje Enter a sentence: no debe ir seguido de un salto de línea. La palabra Original: aparece en la misma línea inmediatamente después de que se lee la entrada.
Por ejemplo, si la entrada es:
HelloTu salida debería ser:
Enter a sentence: Original: Hello
Characters: 5
Vowels: 2
Uppercase: HELLOEste desafío final reúne todas las funciones de procesamiento de texto que has desarrollado a lo largo del proyecto: manejo de entradas, conteo de caracteres con strlen(), conteo de vocales con bucles y sentencias condicionales, y conversión a mayúsculas con toupper(). El programa debe presentar un resumen limpio y organizado de los resultados del análisis de texto.
Pruébalo tú mismo
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main() {
char sentence[200];
printf("Enter a sentence: ");
scanf("%s", sentence);
printf("You entered: %s\n", sentence);
int length = strlen(sentence);
printf("Character count: %d\n", length);
printf("Length: %d\n", length);
int vowel_count = 0;
for (int i = 0; i < length; 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);
printf("Uppercase: ");
for (int i = 0; i < length; i++) {
printf("%c", toupper(sentence[i]));
}
printf("\n");
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