数制转换
void conversion(){
//对于输入的任意一个非负十进制整数,打印输出与其等值的八进制数
InitStack(S); //构造空栈
scanf("%d",N);
while(N){
Push(S,N%8);
N=N/8;
}
while(!StackEmpty(s)){
Pop(S,e);
printf("%d",e);
}
}
## 行编辑程序 ##
//一个简单的行编辑程序的功能是:接受用户从终端输入的程序或数据,并存入用户的数据区。为避免用户出错,较好的做法设立一个输入缓冲区,用以接受用户输入的一行字符,然后逐行存入用户数据区。设这个输入缓冲区为一个栈结构,每当从终端接受一个字符之后,先做辨别:如果它既不是退格符也不是退行符,则将该字符压入栈顶;如果是一个退格符,则从栈顶删去一个字符;如果它是一个退行符,则将字符栈清为空栈
void LinEdit(){
//利用字符栈,从终端接收一行并传送至调用过程的数据区。
InitStack(S); //构造空栈S
ch=getchar(); //从终端接收第一个字符
while(ch!=EOF){//EOF为全文结束符
while(ch!=EOF&&ch!='\n'){
switch(ch){
case'#':Pop(S,c); break;//仅当栈非空时退栈
case'@':ClearStack(S); break;//重置S为空栈
default:Push(S,ch); break;//有效字符进栈,未考虑栈满情形
}
ch=getchar(); //从终端接收下一个字符
}
将从栈底到栈顶的栈内字符传送至调用过程的数据区;
ClearStack(S); //重置S为空栈
if(ch!=EOF) ch=getchar();
}
DestroyStack(S);
}//LineEdit