CCCPaste

NCTU LAB 24/10 NUM 2

#include 
#include 
#include 
using namespace std;

struct toUpper{
  char operator()(char ch){
    return ch - 32;
  }
};

void printStr(string str){
  cout << str;
}

int main(){
  vector data, functionResult, functorResult;
  string temp;
  while(cin >> temp){
    data.push_back(temp);
  }
  for(auto it = data.begin(); it != data.end(); it++){
    string str = *it;
    transform(str.begin(), str.end(), str.begin(), ::toupper);
    functionResult.push_back(str);
  }
  cout << "A)Function" << endl;
  for_each(functionResult.begin(), functionResult.end(), printStr);
  cout << endl;

  for(auto it = data.begin(); it != data.end(); it++){
    string str = *it;
    transform(str.begin(), str.end(), str.begin(), toUpper());
    functorResult.push_back(str);
  }
  cout << "B)Functor" << endl;
  for_each(functorResult.begin(), functorResult.end(), printStr);
  cout << endl;
  return 0;
}