利用栈后进先出的特点实现缓冲区
遇到#:取栈顶元素
遇到@:取栈顶元素直到空栈
#include <iostream>
#include<stdio.h>
#include<string.h>
#include<stack>
using namespace std;
int main()
{
char b[270],a[270];
int i,k,len;
stack<int> s;
while(gets(b)!=NULL){
len=strlen(b);
for(i=0;i<=len-1;i++){
if(b[i]=='#')
if(s.empty()==1)
continue;
else{
s.pop();
}
else if(b[i]=='@'){
while(s.empty()!=1)
s.pop();
}
else
s.push(b[i]);
}
i=0;
while(s.empty()!=1){
a[i++]=s.top();
s.pop();
}
k=i-1;
for(i=k;i>=0;i--)
printf("%c",a[i]);
printf("\n");
}
return 0;
}