#include<iostream>#include<cstring>usingnamespace std;char qq[]="A 3 HIL JM O 2TUVWXY51SE Z 8 ";constchar*end[4]={"这不是回文字符串!","这是镜像字符串!","这是回文字符串!","这是回文镜像字符串!"};charjudge(char a){if(isalpha(a)){return qq[a-'A'];}elsereturn qq[a-'0'+25];}intmain(){int q,m;char a[200];while(cin>>a){
q=1;//判断是不是回文数
m=1;//判断是不是镜像数 int len=strlen(a);for(int i=0;i<len/2;i++){if(judge(a[i])!=a[len-i-1])
m=0;if(a[i]!=a[len-i-1])
q=0;if(m==0&&q==0)break;}
cout<<end[m+q*2]<<endl;//这个形式挺新颖的,相比较与三个if语句这一行代码就很简洁 }return0;}
输入一个字符串,判断它是否为回文串以及镜像串。输入的字符串中不包括数字0。所谓回文串,就是反转以后与原串相同,如abba和madam。#include<iostream>#include<cstring>using namespace std;char qq[]="A 3 HIL JM O 2TUVWXY51SE Z 8 ";const char *end[4]={"这不是回文字符串!","这是镜像字符串!","这是回文字符串!","这是回文镜像字符串!"};