Menu
Coddy logo textTech

Converti in maiuscolo

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

challenge icon

Sfida

Facile

Estendi il programma di utilità per il testo della lezione precedente aggiungendo la funzionalità di conversione in maiuscolo. Il programma deve:

  1. Chiedere all’utente di inserire una frase breve stampando: Enter a sentence: (senza andare a capo alla fine)
  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. Stampare la parola memorizzata nel formato: You entered: [word]
  5. Usare strlen() per calcolare il numero totale di caratteri nella parola
  6. Stampare il conteggio dei caratteri nel formato: Character count: [count]
  7. Stampare la lunghezza usando strlen() nel formato: Length: [length]
  8. Scorrere ogni carattere della parola con un ciclo per contare le vocali
  9. Per ogni carattere, verificare se è una vocale (a, e, i, o, u), sia minuscola che maiuscola
  10. Mantenere un conteggio progressivo delle vocali trovate
  11. Stampare il conteggio delle vocali nel formato: Vowel count: [count]
  12. Stampare Uppercase: e poi usare un ciclo per convertire e stampare in maiuscolo ogni carattere della parola con la funzione toupper()

Ricorda di includere l’intestazione <string.h> per usare la funzione strlen() e l’intestazione <ctype.h> per usare la funzione toupper().

Informazioni su toupper():
La funzione toupper() di <ctype.h> converte un singolo carattere nel corrispondente carattere maiuscolo. Se il carattere è già maiuscolo o non è una lettera, viene restituito invariato.
Esempio: toupper('a') restituisce 'A', mentre toupper('Z') restituisce 'Z'.
Puoi usarla all’interno di un ciclo per convertire un carattere alla volta: printf("%c", toupper(sentence[i]));

Importante: Dopo il prompt Enter a sentence: non deve esserci un carattere di nuova riga. Usa printf("Enter a sentence: "); senza \n.

L’output deve mostrare i risultati nel formato seguente:

Enter a sentence: You entered: [word]
Character count: [count]
Length: [length]
Vowel count: [count]
Uppercase: [WORD]

Ad esempio, se l’input è:

Programming

L’output deve essere:

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

Questa sfida si basa sulla lezione precedente aggiungendo la funzionalità di conversione in maiuscolo tramite la funzione toupper() della libreria <ctype.h>. Dovrai usare un ciclo per scorrere ogni carattere della stringa e convertirlo in maiuscolo, quindi stampare il risultato trasformato.

Provalo tu

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

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore C online