Resultado final
Parte de la sección Lógica y Flujo del Journey de C de Coddy. Lección 24 de 63.
Desafío
FácilCompleta tu programa de utilidades de texto integrando todas las funciones que has creado en las lecciones anteriores en una única salida completa. Tu programa debe:
- Pedir al usuario que introduzca una oración 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 mostrarla
- Calcular el número total de caracteres usando
strlen() - Contar las vocales recorriendo cada carácter y comprobando 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()en un bucle - Mostrar todos los resultados en un formato claro y organizado, con cada dato en una línea separada
Recuerda incluir el encabezado <string.h> para las funciones de cadenas 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 leer la entrada.
Por ejemplo, si la entrada es:
HelloTu salida debe 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 claro y organizado de los resultados del análisis del 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 Lógica y Flujo
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 cadenasPractica por tu cuenta: Compilador de C online