镜像字符串问题
我的这个程序的镜像字符串判断错误,望大佬指点,测试数据2A3MEAS#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<windows.h>
const char* rev = "A 3 HIL JM O 2TUVWXY51SE Z 8 ";
const char* msg[] = { "not a palindrome","a regular palindrome","a mirrored string","a mirrored palindrome" };
char r(char ch)
{
if (isalpha(ch))
return rev[ch - 'A'];
return rev[ch - 'O' + 25];
}
int main()
{
char s[30];
while (scanf_s("%s", s,30) == 1)
{
int len = strlen(s);
int p = 1, m = 1;
for (int i = 0; i < (len + 1) / 2; i++)
{
if (s[i] != s[len - 1 - i])
p = 0;//不是回文串
if (r(s[i]) != s[len - 1 - i])
m = 0;//不是镜像串
}
printf_s("%s -- is %s.\n\n", s, msg[m * 2 + p]);
}
system("pause");
return 0;
}