// Cに合わせて修正
#include <iostream>
#include <algorithm>
#include <cctype>

int is_palindrome( std::string S ) {
	S.erase( std::copy_if  ( S.begin(), S.end(), S.begin(),   isalpha ), S.end() );
	         std::transform( S.begin(), S.end(), S.begin(), ::toupper );
	return   std::equal    ( S.begin(), S.end(), S.rbegin() );
}

// -----------------------------------------------------------------------------
// http://t...content-available-to-author-only...h.net/test/read.cgi/tech/1357191974/277
//
void check_palindrome(const char *cs) { 
printf("\"%s\" %s a palindrome.\n", cs, is_palindrome(cs) ? "is" : "is NOT"); 
} 
int main() { 
check_palindrome("boo"); 
check_palindrome("A man, a plan, a cat, a ham, a yak, a yam, a hat, a canal-Panama!"); 
check_palindrome("A tin mug for a jar of gum, Nita."); 
check_palindrome("A Toyota! Race fast, safe car! A Toyota!"); 
return 0; 
} 
