这是一道水题,主要是对字符串输入的判断以及空行的判断,一定要注意其空行的判断,而string.size()==0并不代表着是空行!
#include "iostream" #include "string" using namespace std; bool checkEmpty(string str)//检查这一行是不是空行 { for(int i = 0;i < str.size();++i) if(str[i] > ' ') return false; return true; } int main () { string str1, str2; while (1) { getline (cin, str1); getline (cin, str2); if (str2.size() != 0 && !checkEmpty(str2)) { string str3, str4, str5, str6; str3.assign(str2, 0, (str2.size()+1)/2); str4.assign(str2, str3.size(), str2.size()+1); str5.assign(str3.rbegin(), str3.rend());//将字符串倒转 str6.assign(str4.rbegin(), str4.rend()); cout << str5 + str6 << endl; } if (str1.size() != 0 && !checkEmpty(str1)) { string str3, str4, str5, str6; str3.assign(str1, 0, (str1.size()+1)/2); str4.assign(str1, str3.size(), str1.size()+1); str5.assign(str3.rbegin(), str3.rend()); str6.assign(str4.rbegin(), str4.rend()); cout << str5 + str6 << endl; } if (cin.eof()) break; } }