模拟网页,大水。
<pre name="code" class="cpp">#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define max 105
char arr[max][max];
void initarr()
{
for(int i=0; i<max; i++)
//memset(arr[i],"\0",max);
strcpy(arr[i],"\0");
}
int main()
{
int i,j,k,m,n,t;
char input[max]="\0";
int top=-1;
int base=-1;
initarr();
strcpy(arr[0],"http://www.acm.org/");
base++;
top++;
while(gets(input))
{
if(!strcmp(input,"QUIT"))
{
return 0;
}
char order[max]="\0";
// memccpy(order,input,' ',strlen(input));
for(i=0; i<strlen(input); i++)
{
if(input[i]!=' ')
order[i]=input[i];
else
break;
}
if(!strcmp(order,"BACK"))
{
if(top<=0)
cout<<"Ignored"<<endl;
else
{
top--;
cout<<arr[top]<<endl;
}
}
else if(!strcmp(order,"FORWARD"))
{
if(top>=base)
cout<<"Ignored"<<endl;
else
{
top++;
//base++;
cout<<arr[top]<<endl;
}
}
else
{
char url[max]="\0";
for(i=strlen(order)+1; i<strlen(input); i++)
url[strlen(url)]=input[i];
top++;
strcpy(arr[top],url);
for(i=top+1; i<base; i++)
{
strcpy(arr[i],"\0");
}
base=top;
cout<<arr[top]<<endl;
}
}
return 0;
}