//字符串处理 //很奇怪的一道题,关键是对结束的判断和空行的检查 //用STL可以省很多事情 #include <iostream> #include <string> #include <algorithm> using namespace std; string s1,s2; bool checkEmpty(string str)//检查这一行是不是空行 { for(int i = 0;i < str.size();++i) if(str[i] > ' ') return false; return true; } int main() { for(;;) { getline(cin,s1); getline(cin,s2); reverse(s2.begin(),s2.end());//倒转 reverse(s1.begin(),s1.end());//倒转 if(s2.size() > 0 && !checkEmpty(s2))//先处理第2行,如果size == 0那么就是换行,不是再检查下是不是空行 { string str1,str2; str1.append(s2.begin(),s2.begin() + s2.size()/2);//后半块放前面 str2.append(s2.begin()+s2.size()/2,s2.end());//前板块放后面 cout << str2 << str1 << endl; } if(s1.size() > 0 && !checkEmpty(s1)) { string str1,str2; str1.append(s1.begin(),s1.begin() + s1.size()/2); str2.append(s1.begin() + s1.size()/2,s1.end()); cout << str2 << str1 << endl; } if(cin.eof()) break;//读到文件结尾就跳出 } return 0; }