#include<iostream> #define n 100 using namespace std; struct Stack{ char* base; char* top; char a[n]; int size; }; void init(Stack &s){ s.base=s.a; s.top=s.base; } void push(Stack &s, char e){ *s.top=e; s.top++; s.size++; } void pop(Stack &s){ s.top--; s.size--; } void print(Stack &s){ //这里可能有问题,但找不出来 char* p=s.base; while(p!=s.top) cout<<*p; } int main(){ Stack s; char c; while(cin>>c){ push(s,c); if(c=="#"){ pop(s); pop(s); } if(c=="*") break; } print(s); }
解决方案
20
while(p!=s.top) cout<<*p;
指针不移动吗