#include <iostream>
#include <stack>
#include <string>
using namespace std;
stack<int> zhan;
int main ()
{
string s1, s2;
while(cin>>s1)
{
s2.clear();
for(int i = 0; i < (int)s1.length(); i++)
{
if(s1[i] == '<'&&s1[i+1] == 'U'){zhan.push(1); i+=3;}
else if(s1[i] == '<'&&s1[i+1] == 'D'){zhan.push(-1); i+=5;}
else if(s1[i] == '<'&&s1[i+1] == '/'){zhan.pop(); i+=(s1[i+2] == 'U'?4:6);}
else
{
if(zhan.empty())s2+=s1[i];
else if(zhan.top() == 1)
s2+=(s1[i]-=((s1[i]>='A'&&s1[i]<='Z')?0:32));
else if(zhan.top() == -1)
s2+=(s1[i]+=((s1[i]>='a'&&s1[i]<='z')?0:32));
}
}
cout<<s2<<endl;
}
return 0;
}
思路较简单,不做多余解释》