#include #include #include #include #include int main(int argc, char** argv) { int characters[256]; int pairs[256 * 256]; for(int count = 0;count < 256;count++) characters[count] = 0; for(int count = 0;count < (256 * 256);count++) pairs[count] = 0; unsigned char lastchar; unsigned char input = cin.get(); int chars_read = 0;; while(false == cin.eof()) { assert(0 <= (int) input); characters[(int) input]++; if(0 != chars_read) { pairs[(int) (lastchar * 256 + input)]++; } lastchar = input; input = cin.get(); chars_read++; } int numberCharacters = 0; for(int count = 0;count < 256;count++) if(0 != characters[count]) numberCharacters++; cout << "There were " << numberCharacters << " distinct characters." << endl; for(int count = 0;count < 256;count++) { if(0 != characters[count]) printf("%02x %d\n", count, characters[count]); } int numberPairs = 0; for(int count = 0;count < (256 * 256);count++) if(0 != pairs[count]) numberPairs++; cout << "There were " << numberPairs << " distinct pairs." << endl; for(int count1 = 0;count1 < 256;count1++) { for(int count2 = 0;count2 < 256;count2++) { if(0 != pairs[256 * count1 + count2]) printf("%02x%02x %d\n", count1, count2, pairs[256 * count1 + count2]); } } }