#include <stdio.h>
#include <stdlib.h>
#define maxsize 100
#define false -1
#define true 1
typedef int status;
status judge()
{//判断依次读入的一个以@为结束符的字符序列是否为形如”序列1&序列2“模式的字符序列
//序列12均没有&,且序列2为序列1的逆序列
char x;
char stack[maxsize]; int top = -1;
printf("正在输入序列1中的字符:\n");
x = getchar();
getchar();
if(x == '@')
{
printf("所输入字符序列不属于模式字符!");
return false;
}
else
{
while(x != '@')
{
while(x != '&' && x != '@') //将序列1的字符依次入栈
{
stack[++top] = x;
x = getchar();
getchar();
} //退出循环时,序列1已全部入栈
printf("正在输入序列2中的字符:\n");
x = getchar();
getchar();
while(x != '@')
{
if(x == stack[top])
{
top--;
x = getchar();
getchar();
}
else
break;
}
//退出循环时,若序列2为序列1的逆序列,则栈顶指针应该等于-1,
if(top == -1 && x == '@')
{
printf("所输入字符序列属于模式字符!");
return true;
}
else
{
printf("所输入字符序列不属于模式字符!");
return false;
}
}
}
}
void main()
{
judge();
}
3.17√ 识别次读入的一个以@为结束符的字符序列是否为形如”序列1&序列2“模式的字符序列 ,序列12均没有&,且序列2为序列1的逆序列
最新推荐文章于 2022-11-01 21:27:10 发布