📄 huiwen.cpp
字号:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define StackSize 100
// 定义栈类型
typedef struct
{
char data[StackSize];
int Top;
} SeqStack;
void Error(char * message)
{
printf("Error: %s\n",message);
};
void InitStack( SeqStack *S) //初始化(置空栈)
{
S->Top=-1;
};
int EmptyStack(SeqStack *S) //判栈空
{ return S->Top == -1; }
int FullStack (SeqStack *S) // 判栈满
{ return S->Top==StackSize-1; }
void Push (SeqStack *S , char x) //进栈
{ if(FullStack(S)) Error("Stack overflow");
S->data[++S->Top]=x;
}
char Pop(SeqStack *S) // 出栈(退栈)
{ if (EmptyStack( S) )
Error( "Stack underflow");
return S->data[S->Top--];
}
int IsHuiwen( char *S)
{
SeqStack T;
int i , n;
char t1;
InitStack( &T);
n=strlen(S);//求字符串长度
for ( i=0; i<n/2; i++)
Push( &T, S[i]); //将一半字符入栈
i=n/2-1;
while(i>=0)
{
t1=Pop (&T);
// 每弹出一个字符与相应字符比较
if( t1!=S[n-i-1]) return 0 ;// 不相等则返回0
i--;
};
return 1 ; // 比较完毕均相等则返回 1
};
/*
void delKong(char *s)
{//去掉字符串中的空格
char temp[StackSize];
int i, j;
i=j=0;
while(s[i] != '\0')
{
if(s[i] == 255)
{ i++;}
else
{
temp[j++] = s[i++];
};
};
temp[j] ='\0';
strcpy(s, temp);
};
*/
void main( )
{
char Str[100]="";
printf("输入一个字符串:\n");
scanf("%s",Str);
printf("%s\n", Str);
if( IsHuiwen(Str))
printf(" \n这个字符串是回文。");
else printf("\n这个字符串不是回文。");
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -