feature image - https://source.unsplash.com/random/900×600/?background&sig=4b93ff06-f868-4118-a871-c24da1ce94f9

Frequenze di un carattere in una stringa in C++

Esercizio

Scrivere una funzione che riceve come parametro una stringa s e un carattere c e restituisce la frequenza di c in s, cioè il numero di occorrenze di c in s. Scrivere un programma di test.

Utilizzando la funzione appena create, scrivere una funzione che riceve come parametro una stringa s e stampa la frequenza in s di ciascun carattere dalla ‘a’ alla ‘z’.

Soluzione

#include <iostream>
#include <string>

const std::string ALFABETO = "abcdefghijklmnopqrstuvwxyz";

int conta_carattere(const std::string&,char);
void stampa_frequenze(const std::string&);
int main() {
std::cout << "1. "<< (conta_carattere("ciao a tutti",'a') == 2)<< "\n";
std::cout << "2. "<< conta_carattere("ciao a tutti",'b') << " <-> 0\n";
auto r = conta_carattere("ciao a tutti",'t');
std::cout << "2. "<< r << " <-> 3\n";

stampa_frequenze("ciao a tutti");

std::cout << "\nbye.\n";
}

void stampa_frequenze(const std::string &str) {
for(auto lettera: ALFABETO) {
auto c = conta_carattere(str,lettera);
if (c > 0) {
std::cout << lettera << ": " << c << "\n";
}
}
}

int conta_carattere(const std::string &str,char c){
int found = 0;
for(auto i = 0; i< str.size();i++) {
if(str[i]== c) {
found++;
}
}

return found;
}

Andrea Pollini

Matematico, informatico.