Visto che per stringhe, usi array di char, suggerisco una soluzione stile linguaggio C.
In C, il confronto tra un carattere e il suo codice ascii non necessita di conversioni,
esempio if('a'==97) equivale a if(97==97).
devi controllare quante occorrenze ci sono in una stringa dei caratteri da 'a' a 'z',
quindi ti potresti creare un array di 26 elementi.
codice:
int lettere[26]={0};//inizializzato a zero
Tenendo conto che l'indice zero 0 rappresenta 'a', l'indice 1 rappresenta'b' ,
e che quindi per ottenere il codice ascii della lettera voluta basta che fai indice+97
se esempio indice è 1 + 97 diventa 98 codice ascii di 'b'
e puoi fare il confronto if(indice+97==carattere) che equivale if(98==carattere).
puoi impostare il tuo programma in un modo simile a quello che ti suggerisco.
codice:
for(i=0;i<26;i++) // Ripete per tutte le lettere
{
for(j=0;frase[j]!=0;j++)//Scorre la frase da esaminare, carattere per carattere
{
if(frase[j]==i+97)// Se il carattere esaminato, è uguale al carattere da valutare i+97
lettere[i]++;// Incrementa l'array lettere nella posizione che rappresenta quel carattere
}
}
Probabilmente non ti sarà tutto chiaro, ma certe volte è più complicato spiegare a parole, che postare un codice di esempio