📄 main.c
字号:
#include "head.h"
void main(int argc,int *argv[])
{
char str[30];
char palindrome[30];
JD *phead = NULL;
JD ptemp;
JD *pointer = NULL;
JD *pnew = NULL;
JD *ptop = NULL;
int i,j;
int flag = 1;
int num;
int enable = 1;//回文字符标识
phead = (JD*)malloc(sizeof(JD));
phead->value = '\0';
phead->next = NULL;
do
{
menu();
printf("请输入num:");
scanf("%d",&num);
printf("\n");
// printf("/**************请输入你需要选择的功能****************/\n");
// printf("\n");
// printf("1:将数组压入堆栈\n");
// printf("2:将堆栈数据输出\n");
// printf("3:判断是否为回文字符串\n");
// printf("0:退出\n");
// printf("/******************欢迎下次继续使用******************/\n");
switch(num)
{
case 0:
{
flag = 0;
break;
}
case 1:
{
for(i = 0;palindrome[i] != '\0';i++)
{
pnew = (JD*)malloc(sizeof(JD));
pnew->value = palindrome[i];
ptop = push(phead,pnew,ptop);
}
break;
}
case 2:
{
printf("打印堆栈里面的数据:\n");
if(ptop !=NULL)
{
for(i = 1,pointer = ptop;pointer != NULL;pointer = pointer->next,i++)
{
printf("堆栈第%d层值:%c\n",i,pointer->value);
}
}
else
{
printf("栈空\n");
}
break;
}
case 3:
{
for(i = 0;palindrome[i] != '\0';i++)
{
if(ptop != NULL)
{
ptemp.next = NULL;
ptemp.value = ' ';
ptop = pop(phead,&ptemp,ptop);
if(ptemp.value != palindrome[i])
{
enable = 0;
}
}
}
if(enable == 0)
{
printf("不是回文字符\n");
}
else
{
printf("是回文字符\n");
}
break;
}
case 4:
{
printf("请输入待测字符串:");
fflush(stdin);
gets(str);
enable = 1;
//将字符串空格去除
for(i = 0,j = 0;str[i] != '\0';i++)
{
if(str[i] != ' ')
{
palindrome[j++] = str[i];
}
}
palindrome[j] = '\0';
break;
}
default:
{
printf("号码出错!!!请重新输入:\n");
}
}
}while(flag == 1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -