blob: 563d91befac7447095cd54a081347bd26a2a0e06 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
#include <iostream>
#include <map>
#include <cctype>
#include <fstream>
#include <algorithm>
#include <string>
char myTransformer( char d ) {
if ( std::isupper( d ) )
return std::tolower( d ) ;
else
return d ;
}
int main( int argc, char* argv[] ) {
for ( int i = 1 ; i < argc ; i++ ) {
std::string file( argv[ i ] ) ;
std::ifstream infile( file , std::ios::binary | std::ios::in ) ;
if ( infile ) {
std::map<char, int> frequencies ;
while ( infile.good( ) ) {
std::string line ;
std::getline( infile, line ) ;
std::transform( line.begin( ) , line.end( ) , line.begin( ) ,
myTransformer ) ;
for ( char c : line ) {
if ( std::isalpha( c ) ) {
frequencies[c]++ ;
}
}
}
infile.close( ) ;
std::cout << "Letter frequency for file " << file << " :\n" ;
for ( auto & p : frequencies ) {
std::cout << p.first << ": " << p.second << std::endl ;
}
}
else {
std::cout << "Can't open file " << file << " !\n" ;
}
}
}
|