Advertisement
yuawn

ICSL_A4

Oct 17th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.51 KB | None | 0 0
  1. /*****************************************
  2. * Assignment 4
  3. * Name: �i��
  4. * Student Number: 104303040
  5. * Course: 2017-CE1001
  6. ******************************************/
  7. #include<iostream>
  8. #include<string>
  9. #include<algorithm>
  10. #include<map>
  11. using namespace std;
  12.  
  13. bool isup( char c ){ //upper
  14.     return c > '@' && c < '[';
  15. }
  16.  
  17. bool islo( char c ){ //lower
  18.     return c > '`' && c < '{';
  19. }
  20.  
  21. int main(){
  22.     string s , sub = "" ;
  23.     bool p = 0; //continuous
  24.     map<char,int> mp; //count
  25.    
  26.     cout << "Please enter something without space:" << endl;
  27.    
  28.     cin >> s;
  29.    
  30.     cout << ' ' << endl << "case1:" << endl;
  31.    
  32.     for( int i = 0 ; i < s.size() ; i++ ) {
  33.         ++mp[ isup( s[i] ) ? s[i] + 32 : s[i] ]; //counting
  34.         if( !isup( s[i] ) && !islo( s[i] ) ) {
  35.             putchar( s[i] == '_' ? ' ' : s[i] ); //replace with space
  36.             continue;
  37.         }
  38.         putchar( isup( s[i] ) ? s[i] + 32 : s[i] - 32 ); //switch
  39.     }
  40.     cout << endl << ' ' << endl << "case2" << endl;
  41.    
  42.     for( int i = s.size() - 1 ; i > -1 ; i-- ){
  43.         if( !isup( s[i] ) && !islo( s[i] ) && s[i] != '\'' ){
  44.             if( p ){
  45.                 p = 0;
  46.                 reverse( sub.begin() , sub.end() ); // reverse
  47.                 cout << sub;
  48.                 sub = "";
  49.             }
  50.             putchar( s[i] == '_' ? ' ' : s[i] ); //replace
  51.             continue;
  52.         }
  53.         p = 1;
  54.         sub += s[i];
  55.     }
  56.     if( p ) {
  57.         reverse( sub.begin() , sub.end() ); //legacy
  58.         cout << sub;
  59.     }
  60.    
  61.     cout << endl << ' ' << endl << "case3" << endl;
  62.    
  63.     cout << "a:" << mp['a'] << ",e:" << mp['e'] << ",i:" << mp['i'] << ",o:" << mp['o'] << ",u:" << mp['u'] << endl;
  64.    
  65.     return 0;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement