Guest User

Untitled

a guest
Oct 18th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.24 KB | None | 0 0
  1. #include<iostream>
  2. #include<string>
  3.  
  4. using namespace std;
  5.  
  6. void initializeLetters(int lttr[]);
  7. void countWordsLetters(string strng, int lttr[]);
  8. void printNumberofWordsLetters(int lttr[]);
  9.  
  10. int main(void){
  11.   string strInput;
  12.   int letter[91];   // a to z (65-90) and white space (32)
  13.  
  14.   cout << "Input line: ";
  15.   getline(cin, strInput);
  16.  
  17.   initializeLetters(letter);
  18.   countWordsLetters(strInput, letter);
  19.   printNumberofWordsLetters(letter);
  20.   return 0;
  21. }
  22.  
  23. void initializeLetters(int lttr[]){
  24.   for(int i=0; i<91; i++)
  25.     lttr[i] = 0;
  26. }
  27.  
  28. void countWordsLetters(string strng, int lttr[]){
  29.   int intEquivalent;
  30.  
  31.   for(int i=0; i<strng.length(); i++){
  32.     if((int)strng[i] > 90)
  33.       intEquivalent = (int) strng[i] - 32;
  34.     else
  35.       intEquivalent = (int) strng[i];
  36.    
  37.     if((intEquivalent == 32)&&((int)strng[i-1] == 32))  // two consecutive white spaces
  38.       lttr[32]--;   // uncount the previous white space
  39.    
  40.     lttr[intEquivalent]++;
  41.   }
  42. }
  43.  
  44. void printNumberofWordsLetters(int lttr[]){
  45.   cout << lttr[32] + 1 << " words" << endl; // # of words = # of white spaces (32) + 1
  46.   for(int i=65; i<91; i++)      // A = 65, 90 = Z, 65-90 = A-Z
  47.     if(lttr[i] > 0)
  48.       cout << lttr[i] << " " << (char) (i + 32) << endl;
  49. }
Add Comment
Please, Sign In to add comment