帮忙看下我写的回文函数Huiwen和主函数
我输入什么字符串怎么输入都是1啊
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <iostream.h>
#include <string.h>
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
#define MAX 100
typedef struct
{
int *base;
int *top;
int stacksize;
}SqStack;
void InitStack(SqStack &S)
{
S.base=(int *)malloc(STACK_INIT_SIZE *sizeof(int));
if(!S.base)exit(1);
S.top=S.base;
S.stacksize=STACK_INIT_SIZE;
}
/*int GetTop(SqStack &S,int &e)
{
if(S.top==S.base)return 0;
e=*(S.top-1);
return e;
}*/
void Push(SqStack &S,char e)
{
if(S.top-S.base>=S.stacksize)
{
S.base=(int *)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(int));
if(!S.base)exit(1);
S.top=S.base+S.stacksize;
S.stacksize+=STACKINCREMENT;
}
*S.top=e;
S.top++;
}
char Pop(SqStack &S,char &e)
{
if(S.top==S.base)exit(1);
e=*S.top;
--S.top;
return e;
}
bool StackEmpty(SqStack &S)
{
if(S.base==S.top)return true;
return false;
}
/*void Conversion()
{
int N,e;
SqStack S;
InitStack(S);
printf("input the number which you want to conver:");
scanf("%d",&N);
while(N)
{
Push(S,N%2);
N=N/2;
}
while(!StackEmpty(S))
{
Pop(S,e);
printf("%d",e);
}
}*/
int Strequl(char str[],char str1[])
{
int i,j;
int length0=strlen(str);
int length1=strlen(str1);
if(length0 != length1)return 0;
for(i=0,j=0;i<length0 && j<length1;i++,j++)
{
if(str[i]!=str1[j])
break;
}
if(i!=length0 || j!=length1)return 0;
return 1;
}
int Huiwen()
{
char str[MAX],str1[MAX];
SqStack S;
InitStack(S);
printf("input your string:");
gets(str);
int length=strlen(str);
int j=0;
// char str1[length];
for(int i=1;i<=length;i++)
Push(S,str[i]);
while(!StackEmpty(S))
{
Pop(S,str[j]);
j++;
}
cout<<strcmp(str,str1);
// cout<<Strequl(str,str1);
return 0;
}
int main()
{
// Conversion();
Huiwen();
return 0;
}