判断字符串是否为回文序列
求
回文序列:即字符串正读反读都一样 eg: 123321 , 123#321没有规定一定要输入几个数,我的思路是每次判断头部尾部是否相等,我本想用指针,但是我不知道该怎么指向尾部,用数组也不会判断怎么才是最后,求大神们帮忙

程序代码:#include<stdio.h>
int main()
{
char a[100]={'\0'};
gets(a);
char * p=a;
for(;*p!='\0';++p);
p--;
char * q=a;
int flag=0;
while(p>=q)
{
if(*p!=*q)
{
printf("%s 不是一个回文字符串\n",a);
flag=0;
break;
}
p--;
q++;
flag=1;
}
if(flag==1) printf("%s 是一个回文字符串\n",a);
return 0;
}