Code: Select all
int main() {
char inp[21],lu[100]={0},lm[100]={0};
int i,j,k,m,y,t;
lu['A']='A'; lu['E']='3'; lu['H']='H'; lu['I']='I';
lu['J']='L'; lu['L']='J'; lu['M']='M'; lu['O']='O';
lu['S']='2'; lu['T']='T'; lu['U']='U'; lu['V']='V';
lu['W']='W'; lu['X']='X'; lu['Y']='Y'; lu['Z']='5';
lu['2']='S'; lu['3']='E'; lu['5']='Z'; lu['8']='8';
lm['A']='A'; lm['H']='H'; lm['I']='I';
lm['M']='M'; lm['O']='O';
lm['T']='T'; lm['U']='U'; lm['V']='V';
lm['W']='W'; lm['X']='X'; lm['Y']='Y';
lm['8']='8';
while (gets(inp)!=NULL) {
i=strlen(inp);
m=i-1;
i/=2;
t=y=k=1;
for (j=0;j<=i;j++,m--) {
if (inp[m]!=inp[j]) t=0;
if (inp[m]!=lu[inp[j]]) y=0;
if (inp[m]!=lm[inp[j]]) k=0;
}
if (k)
printf("%s -- is a mirrored palindrome.\n\n",inp);
else if (y)
printf("%s -- is a mirrored string.\n\n",inp);
else if (t)
printf("%s -- is a regular palindrome.\n\n",inp);
else
printf("%s -- is not a palindrome.\n\n",inp);
}
}