Output finale
Fa parte della sezione Logica e flusso del percorso C di Coddy. Lezione 24 di 63.
Sfida
FacileCompleta 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:
- Chiedere all’utente di inserire una frase breve stampando:
Enter a sentence:(senza andare a capo alla fine: usaprintf("Enter a sentence: "), nonprintf("Enter a sentence: \n")) - Dichiarare un array di caratteri chiamato
sentencecon 200 elementi per memorizzare l’input - Usare
scanfcon lo specificatore di formato%sper leggere una singola parola dall’utente - Memorizzare la parola originale in un array di caratteri separato, da usare per visualizzarla
- Calcolare il numero totale di caratteri usando
strlen() - Contare le vocali iterando su ogni carattere e verificando se corrisponde a una vocale (a, e, i, o, u), sia minuscola sia maiuscola
- Convertire la parola in maiuscolo usando la funzione
toupper()in un ciclo - 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 è:
HelloL’output dovrebbe essere:
Enter a sentence: Original: Hello
Characters: 5
Vowels: 2
Uppercase: HELLOQuesta 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
1Fondamenti dei puntatori
Che cos’è un puntatore?Dichiarare i puntatoriL’operatore di indirizzo (&)L’operatore di dereferenziazione (*)Puntatori NULLRiepilogo: nozioni di base sui puntatori4Progetto: Utility di testo semplice
Panoramica del progettoConteggio dei caratteri2Puntatori e array
I nomi degli array come puntatoriElementi degli array e puntatoriAritmetica dei puntatoriConfrontare i puntatoriRiepilogo: attraversamento di un array con i puntatori5Puntatori e funzioni
Passaggio per valorePassare puntatori alle funzioniModificare le variabili tramite puntatoriUn esempio classico: scambiare valoriPassare array alle funzioniRiepilogo: argomenti puntatore nelle funzioni3Array di caratteri e stringhe
Stringhe come array di charIl terminatore nullInput di stringhe con scanfUso di strlen()Uso di strcpy()Uso di strcat()Uso di strcmp()Riepilogo: funzioni di base per le stringhe6Gestione della memoria
Memoria Stack vs. HeapAllocazione dinamica - malloc()Usare sizeof() per l'allocazioneVerificare il fallimento dell'allocazioneLiberare la memoria con free()Allocare con calloc()Riepilogo: array dinamico9Progetto: Inserimento semplice di un contatto
Progetto: Definire una struct ContattoFunzione per creare un contattoEsercitati da solo: Compilatore C online