⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2.cpp

📁 魔王语言解释程序:有一个魔王总是使用自己的一种非常精练而抽象的语言讲话
💻 CPP
字号:
/* Note:Your choice is C IDE */
#include<stdio.h> 
#include<stdlib.h> 
#include<malloc.h> 
#define length 11 
#define STACK_INIT_SIZE 31 
#define OK 1 
#define ERROR 0 
#define OVERFLOW 0 
#define STACKINCREMENT 10 
typedef struct SqStack{ 
char *base; 
char *top; 
int stacksize; 
}SqStack; 
int InitStack(SqStack &S){ 
S.base = (char *)malloc(STACK_INIT_SIZE * sizeof(char)); 
if(!S.base) exit (OVERFLOW); 
S.top = S.base; 
S.stacksize = STACK_INIT_SIZE; 
return OK; 
} 
int push(SqStack &S,char e){ 
if (S.top - S.base>=S.stacksize){ 
S.base = (char *) realloc (S.base,(S.stacksize + STACKINCREMENT) * sizeof (char)); 
if (!S.base) return OVERFLOW; 
S.top = S.base + S.stacksize; 
S.stacksize += STACKINCREMENT; 
} 
*S.top++ = e; 
return OK; 
}//push 
int pop(SqStack &S,char &e) { 
if (S.top == S.base) return ERROR; 
e = * --S.top; 
return OK; 
}//Pop 
main()// ?aêí?§1íó??? 
{ 
char *p,t,y; 
char str[length]; 
printf("请输入魔王语言?"); 
gets(str); 
p=str; 
SqStack s1,s2; 
InitStack(s1); 
while(*p!='\n') 
{ 
switch(*p) 
{ 
case'A':{ 
t='s'; 
push(s1,t); 
t='a'; 
push(s1,t); 
t='e'; 
push(s1,t); 
} break; 
case'B':{ 
t='t'; 
push(s1,t); 
t='s'; 
push(s1,t); 
t='a'; 
push(s1,t); 
t='e'; 
push(s1,t); 
t='d'; 
push(s1,t); 
t='s'; 
push(s1,t); 
t='a'; 
push(s1,t); 
t='e'; 
push(s1,t); 
} break; 
case'(':{ 
char *q,x; 
q=p; 
while(q!=")") 
{ 
q++; 
} 
x=*(++p); 
++p; 
while(p!=q) 
{ 
push(s1,x); 
push(s1,*p); 
p++; 
} 
push(s1,x); 
p=++q; 
} break; 
default:push(s1,*p); break; 
p++; 
} 
} 
InitStack(s2); 
while(s1.top!=s1.base) 
{ 
pop(s1,y); 
push(s2,y); 
} 
while(s2.top!=s2.base) 
{ 
pop(s2,y); 
switch(y) 
{ 
case't':printf("天"); break; 
case'd':printf("地"); break; 
case's':printf("上"); break; 
case'a':printf("一只"); break; 
case'e':printf("鹅"); break; 
case'z':printf("追"); break; 
case'g':printf("赶"); break; 
case'x':printf("下"); break; 
case'n':printf("蛋"); break; 
case'h':printf("恨"); break; 
} 
} 
return OK; 

} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -