/* 

Predisporre  una funzione che data una stringa di al massimo 100 
caratteri conta le occorrenze delle 26 lettere dell'alfabeto 
inglese e le stampa a video se diverse da 0.

E' possbile usare la funzione char tolower(char c) che converte 
i numeri in minuscolo.

***********************************************************************/

#include <iostream>
#include <cstring>
using namespace std;

const int DIM = 26; // numero di lettere dell'alfabeto inglese

void contaOccorrenze(char* str, int *occ) {

	int strLen = strlen(str);    
    
    for (int i = 0; i<DIM; i++)
        occ[i] = 0;    

	for (int i = 0; i<strLen && str[i] != '\0'; i++){
        char minuscolo = tolower(str[i]);  // converte in minuscolo

        if ( minuscolo>='a' && minuscolo <='z' )  
			occ[minuscolo-'a']++;
    }
}

int main(){

    int MAX_LEN = 100; // lunghezza massima della C-stringa da leggere da tastiera   
    char str[MAX_LEN + 1];
    
	cout<<"Inserire una stringa di massimo 100 caratteri: "<<endl;
    cin>>str;
	
    int occorrenze[DIM];

	contaOccorrenze(str, occorrenze);

	for (int i=0;i<DIM;i++)
        if(occorrenze[i]>0)
            cout<<char('a'+i)<<" ha occorrenza "<< occorrenze[i]<<endl;
    

	return 0;
}
