· Andrea Pollini · informatica · 3 min read
Esercizio svolto C++: Conteggio parole in una stringa
Esercizio svolto C++ per contare il numero di parole in una stringa. Scopri come implementare un programma in C++ per contare le parole in una stringa.
Esercizio
Scrivere un programma in C++ che conta il numero di parole in una stringa. Il programma deve leggere una stringa da input e restituire il numero di parole presenti nella stringa. SCrivere inoltre una funzione che stampi a video il numero di occorrenze di ogni carattere dell’alfabeto presenti nella stringa.
Teoria Necessaria
Prima di immergerci nel codice, è utile comprendere alcuni concetti di base:
- Stringhe in C++: In C++, una stringa è una sequenza di caratteri. Può essere gestita come array di caratteri (
char[]
) o usando la classestd::string
. - Loop: I cicli
for
ewhile
sono essenziali per iterare su ogni carattere di una stringa. - Array: Utilizzeremo un array per contare le occorrenze di ciascun carattere dell’alfabeto.
Funzione per Contare le Occorrenze di un Carattere
Iniziamo con la funzione che conta le occorrenze di un carattere specifico in una stringa.
Spiegazione del Codice
- Definizione della Funzione: La funzione
contaCarattere
prende in input una stringa (const std::string& str
) e un carattere (char carattere
). - Conteggio Iniziale: Inizializziamo un contatore (
conteggio
) a zero. - Loop sulla Stringa: Utilizziamo un loop
for
per iterare su ogni carattere della stringa. - Confronto dei Caratteri: Ogni carattere della stringa viene confrontato con il carattere di interesse. Se sono uguali, incrementiamo il contatore.
- Restituzione del Conteggio: Alla fine, la funzione restituisce il numero di occorrenze del carattere.
Funzione per Contare le Occorrenze di Tutti i Caratteri dell’Alfabeto
Ora scriveremo una funzione che conta le occorrenze di ogni carattere dell’alfabeto in una stringa.
Spiegazione del Codice
- Definizione della Funzione: La funzione
contaTuttiCaratteri
prende in input una stringa (const std::string& str
). - Array di Conteggio: Inizializziamo un array (
std::vector<int> conteggi
) di 26 elementi a zero, uno per ogni lettera dell’alfabeto. - Loop sulla Stringa: Iteriamo su ogni carattere della stringa.
- Verifica del Carattere: Utilizziamo
isalpha
per verificare se il carattere è una lettera etolower
per convertirlo in minuscolo. - Incremento del Conteggio: Incrementiamo il contatore appropriato sottraendo
'a'
dal carattere. - Funzione di Stampa: La funzione
stampaConteggi
stampa il risultato per ogni lettera dell’alfabeto.
Programma di Test
Ora scriveremo un programma di test che verifica le funzioni sopra definite e permette all’utente di inserire i dati.
Spiegazione del Codice
- Prototipi delle Funzioni: Dichiarazione dei prototipi delle funzioni.
- Input dell’Utente: Lettura della stringa e del carattere da contare.
- Chiamata a
contaCarattere
: Calcola e stampa il numero di occorrenze del carattere specificato. - Chiamata a
contaTuttiCaratteri
: Calcola e stampa il numero di occorrenze di ciascun carattere dell’alfabeto.