#include #include #include #include #include #include using namespace std; string normalise(const string s) { string result = ""; int i = 0, len = s.length(); while (i < len) { char c = s[i]; if (islower(c) || isdigit(c)) result = result + c; else if (isupper(c)) result = result + (char)(c + 'a' - 'A'); // could be (char)tolower(c) i = i + 1; } return result; } int find(string wanted, string arr[], int size) { int i = 0; while (i < size) { if (arr[i] == wanted) return i; i = i + 1; } return -1; } int main() { string word[48000]; int count[48000]; int i = 0; while (i < 48000) { word[i] = ""; count[i] = 0; i = i + 1; } int numword = 0; ifstream in; in.open("/home/www/text/barrie/peterpan"); if (in.fail()) { cout << "Can't open\n"; exit(1); } while (true) { string w; in >> w; if (in.fail()) break; w = normalise(w); if (w == "") continue; int pos = find(w, word, numword); if (pos >= 0) count[pos] = count[pos] + 1; else { word[numword] = w; count[numword] = 1; numword = numword + 1; } } in.close(); i = 0; while (i < numword) { cout << word[i] << ": " << count[i] << "\n"; i = i + 1; } string popularword = ""; int biggestcount = -1; i = 0; while (i < numword) { if (count[i] > biggestcount) { biggestcount = count[i]; popularword = word[i]; } i = i + 1; } cout << popularword << " appeared " << biggestcount << " times\n"; }