Converti in maiuscolo
Fa parte della sezione Logica e flusso del percorso C di Coddy. Lezione 23 di 63.
Sfida
FacileEstendi il programma di utilità per il testo della lezione precedente aggiungendo la funzionalità di conversione in maiuscolo. Il programma deve:
- Chiedere all’utente di inserire una frase breve stampando:
Enter a sentence:(senza andare a capo alla fine) - 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 - Stampare la parola memorizzata nel formato:
You entered: [word] - Usare
strlen()per calcolare il numero totale di caratteri nella parola - Stampare il conteggio dei caratteri nel formato:
Character count: [count] - Stampare la lunghezza usando
strlen()nel formato:Length: [length] - Scorrere ogni carattere della parola con un ciclo per contare le vocali
- Per ogni carattere, verificare se è una vocale (a, e, i, o, u), sia minuscola che maiuscola
- Mantenere un conteggio progressivo delle vocali trovate
- Stampare il conteggio delle vocali nel formato:
Vowel count: [count] - Stampare
Uppercase:e poi usare un ciclo per convertire e stampare in maiuscolo ogni carattere della parola con la funzionetoupper()
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 è:
ProgrammingL’output deve essere:
Enter a sentence: You entered: Programming
Character count: 11
Length: 11
Vowel count: 3
Uppercase: PROGRAMMINGQuesta 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
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