Word Reversal
最近数据结构刚学的栈,做这道题,c++和c掺着用的
下面是我的代码 ,求问这样写有什么问题,怎么改,或者这样写不行?
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
using namespace std;
#define MAXSIZE 100
typedef char SElemType;
typedef struct{
SElemType *base;
SElemType *top;
int stacksize;
}stack;
int initstack(stack &q){
q.base=(SElemType*)malloc(MAXSIZE*sizeof(SElemType));
if(!q.base) return 0;
q.top=q.base;
return 1;
}
int main()
{
char a[1000];
stack q;
initstack(q);
int n,i;
cin>>n;
while(n--)
{
char e;
while((e=getchar())!='\n')
{//读取一个字符,让该字符进栈,如果字符是空格的话,删除栈顶元素,并用e返回其值存储在数组里,直到栈空
*q.top++=e;//进栈
if(e==' ')//有一个问题:如果e是空格能存入栈吗
{
for(i=0;q.top!=q.base;i++)
{
e=*--q.top;
a[i]=e;
}
}
}
for(int j=1;j<i;j++)
cout<<a[i];
cout<<endl;
}
return 0;
}