源代码
点击查看代码
#include <iostream>
#include <string>
#include <algorithm>
bool is_palindrome(const std::string &s);
bool is_palindrome_ignore_case(const std::string &s);
int main() {
using namespace std;
string s;
// 多组输入,直到按下Ctrl+Z结束测试
while(cin >> s) {
cout << boolalpha
<< "区分大小写: " << is_palindrome(s) << "\n"
<< "不区分大小写: " << is_palindrome_ignore_case(s) << "\n\n";
}
}
// 函数is_palindrome定义
// 待补足
// ×××
bool is_palindrome(const std::string &s)
{
std::string temp = s;
std::reverse(temp.begin(), temp.end());
return temp == s;
}
// 函数is_palindrome_ignore_case定义
// 待补足
// ×××
bool is_palindrome_ignore_case(const std::string &s)
{
std::string lower_s;
// 全部转小写
std::transform(s.begin(), s.end(), std::back_inserter(lower_s),
[](char c){ return tolower(static_cast<unsigned char>(c)); });
std::string rev = lower_s;
std::reverse(rev.begin(), rev.end());
return rev == lower_s;
}

# 问题
用getline代替