#include <string> 
#include <iostream> 
#include <cstddef> 
// consider 128 ASCII decimal and their coresponding character codes 
int  charASCIIArray[ 128 ]  =  { 0 } ; 
 
void  count_char( const  std:: string &  s) 
{ 
   for ( const  auto &  it:  s) 
   { 
        if ( ( 'A'  <=  it &&  it <=  'Z' )  ||      // if char between (A,B,....,Z) or 
           ( 'a'  <=  it &&  it <=  'z' )  )       //         between (a,b,....,z) 
           charASCIIArray[ static_cast < int > ( it) ] ++ ;  // we count each corresponding array then 
   } 
} 
 
int  main( ) 
{ 
   std:: string  userinput =  "random words WITH *- aLl" ; 
 
   count_char( userinput) ; 
   for ( std:: size_t  index =  0 ;  index <  128 ;  ++ index) 
      if ( charASCIIArray[ index]  ! =  0 ) 
        std:: cout  <<  "Letter "  <<  static_cast < char > ( index)   // convert back to char 
                  <<  " occured "  <<  charASCIIArray[ index]  <<  " times.\n " ; 
 
   return  0 ; 
} 
 
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGRlZj4KLy8gY29uc2lkZXIgMTI4IEFTQ0lJIGRlY2ltYWwgYW5kIHRoZWlyIGNvcmVzcG9uZGluZyBjaGFyYWN0ZXIgY29kZXMKaW50IGNoYXJBU0NJSUFycmF5WzEyOF0gPSB7MH07Cgp2b2lkIGNvdW50X2NoYXIoY29uc3Qgc3RkOjpzdHJpbmcmIHMpCnsKICAgZm9yKGNvbnN0IGF1dG8mIGl0OiBzKQogICB7CiAgICAgICAgaWYoKCdBJyA8PSBpdCAmJiBpdCA8PSAnWicpIHx8ICAgICAvLyBpZiBjaGFyIGJldHdlZW4gKEEsQiwuLi4uLFopIG9yCiAgICAgICAgICAgKCdhJyA8PSBpdCAmJiBpdCA8PSAneicpICkgICAgICAvLyAgICAgICAgIGJldHdlZW4gKGEsYiwuLi4uLHopCiAgICAgICAgICAgY2hhckFTQ0lJQXJyYXlbc3RhdGljX2Nhc3Q8aW50PihpdCldKys7IC8vIHdlIGNvdW50IGVhY2ggY29ycmVzcG9uZGluZyBhcnJheSB0aGVuCiAgIH0KfQoKaW50IG1haW4oKQp7CiAgIHN0ZDo6c3RyaW5nIHVzZXJpbnB1dCA9ICJyYW5kb20gd29yZHMgV0lUSCAqLSBhTGwiOwoKICAgY291bnRfY2hhcih1c2VyaW5wdXQpOwogICBmb3Ioc3RkOjpzaXplX3QgaW5kZXggPSAwOyBpbmRleCA8IDEyODsgKytpbmRleCkKICAgICAgaWYoY2hhckFTQ0lJQXJyYXlbaW5kZXhdICE9IDApCiAgICAgICAgc3RkOjpjb3V0IDw8ICJMZXR0ZXIgIiA8PCBzdGF0aWNfY2FzdDxjaGFyPihpbmRleCkgIC8vIGNvbnZlcnQgYmFjayB0byBjaGFyCiAgICAgICAgICAgICAgICAgIDw8ICIgb2NjdXJlZCAiIDw8IGNoYXJBU0NJSUFycmF5W2luZGV4XSA8PCAiIHRpbWVzLlxuIjsKCiAgIHJldHVybiAwOwp9Cg==