Menu
Coddy logo textTech

Output finale

Fa parte della sezione Logica e flusso del percorso C di Coddy. Lezione 24 di 63.

challenge icon

Sfida

Facile

Completa il tuo programma di utilità per il testo integrando in un unico output completo tutte le funzionalità che hai sviluppato nelle lezioni precedenti. Il programma dovrebbe:

  1. Chiedere all’utente di inserire una frase breve stampando: Enter a sentence: (senza andare a capo alla fine: usa printf("Enter a sentence: "), non printf("Enter a sentence: \n"))
  2. Dichiarare un array di caratteri chiamato sentence con 200 elementi per memorizzare l’input
  3. Usare scanf con lo specificatore di formato %s per leggere una singola parola dall’utente
  4. Memorizzare la parola originale in un array di caratteri separato, da usare per visualizzarla
  5. Calcolare il numero totale di caratteri usando strlen()
  6. Contare le vocali iterando su ogni carattere e verificando se corrisponde a una vocale (a, e, i, o, u), sia minuscola sia maiuscola
  7. Convertire la parola in maiuscolo usando la funzione toupper() in un ciclo
  8. Visualizzare tutti i risultati in un formato chiaro e organizzato, con ogni informazione su una riga separata

Ricorda di includere l’intestazione <string.h> per le funzioni sulle stringhe e l’intestazione <ctype.h> per le funzioni di conversione dei caratteri.

L’output deve visualizzare tutti i risultati nel seguente formato esatto:

Enter a sentence: Original: [word]
Characters: [count]
Vowels: [count]
Uppercase: [WORD]

Importante: Il prompt Enter a sentence: non deve essere seguito da un carattere di nuova riga. La parola Original: appare sulla stessa riga subito dopo la lettura dell’input.

Per esempio, se l’input è:

Hello

L’output dovrebbe essere:

Enter a sentence: Original: Hello
Characters: 5
Vowels: 2
Uppercase: HELLO

Questa sfida finale riunisce tutte le funzionalità di elaborazione del testo che hai sviluppato nel corso del progetto: gestione dell’input, conteggio dei caratteri con strlen(), conteggio delle vocali con cicli e istruzioni condizionali e conversione in maiuscolo con toupper(). Il programma dovrebbe presentare un riepilogo chiaro e organizzato dei risultati dell’analisi del testo.

Provalo tu

#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;
}

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore C online