👤
a fost răspuns

Scrieti un program C/C++ care citeste din fisierul standard de intrare (tastatura) un sir de caractere format doar din litere mici ale alfabetului englez si afiseaza numarul de aparitii al fiecarei litere din cuvantul introdus. Datele de intrare se considera a fi corecte.

Răspuns :

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

int main(){
    char s[200], c;
    int t, i, ap[26];
    cin>>s;
    
    for(i=0;i<26;i++) ap[i] = 0;
    
    for(i=0;i<strlen(s);i++){
        t = s[i] - 'a';
        //asta îl va transforma din număr de la 0 
        //la 25 (cele 26 de litere din alf. engl.)
        //pentru că - s va reprezenta codul ascii de la litera
        //la care am ajuns în șir, iar 'a' va fi codul ascii
        //a literei a, adică 97, parcă. Iar de exemplu, dacă
        //litera curentă ar fi: c, codul ascii ar fi 
        //99, iar 99-97 = 2. Dacă litera ar fi a: 97-97 = 0
        //dacă litera ar fi b: 98-97 = 1.
        ap[t]++;
    }
    
    for(i=0;i<26;i++){
        c = 'a' + i;
        //i-ul va fi aici acea diferență
        //de coduri ascii de la a la litera de care avem nevoie
        //adică efectiv litera
        cout<<c<<": ";
        cout<<ap[i];
        cout<<endl;
    }
    
}



Eventual pui Și un if dacă nu vrei să afișezi și literele care apar de 0 ori :))