试写一个算法,判定给定的字符向量是否为回文

答案不对
#include <stdio.h>
#include <string.h>

const int TRUE = 1;
const int FALSE = 0;
const int STR_MAX_SIZE = 100;
typedef int STATUS;
typedef char ElementType;
typedef struct
{
int stack_size;
ElementType *top;
ElementType *base;
}STACK;

STATUS IsPlalindrome(char* s);
int main()
{
// char *str_input; //之前这么定义的,导致程序在gets(str_input)处出错,后改成下一句
char str_input[STR_MAX_SIZE];
printf("\n请输入待检测的字符串:");
gets(str_input);
//本来以为加上getchar()就可以了,但是还是不对

if(IsPlalindrome(str_input))
{
    printf("\n是回文字符串!");
}
else
{
    printf("\n不是回文字符串!");
}
return 0;

}

STATUS IsPlalindrome(char* s)
{
int len;
char *p;
STACK stack;

len = strlen(s) / 2; 
p = s;

stack.base = new char [len];
stack.top = stack.base;
stack.stack_size = len;

for(int i = 0; i < stack.stack_size; i++)
{
    *(stack.top) = *p;
    stack.top++;
    p++;
}

if(stack.stack_size % 2 == 1)//当字符串为奇数个时,最中间的字符无需比较,直接跳过 
{
    p++;
}
while(stack.top != stack.base)
{
    if(*(stack.top - 1) != *p)
    {
        delete [] stack.base;
        return FALSE;    
    }
    else
    {
        stack.top--;
        p++;
    }
}
if(stack.top == stack.base)
{
    delete [] stack.base;
    return TRUE;
}

}

img


兄弟你这句什么意思?