//栈
#include<iostream> #include<stack> using namespace std; int main(){ string str; stack<char>tag,contents,xml; int i,j,k,t; getline(cin,str);//输入字符串str for(i=0; i<str.length(); i++) { if(str[i]!='/') { xml.push(str[i]); } else if(str[i]=='/') { while(xml.size()!=0) { if(xml.top()!='>') { contents.push(xml.top()); xml.pop(); } else if(xml.top()=='>') { cout<<"Contents is:"; while(contents.size()!=1) { cout<<contents.top(); contents.pop(); } contents.pop(); cout<<endl; break; } } tag.push('>'); while(xml.size()!=0) { if(xml.top()!='<') { tag.push(xml.top()); xml.pop(); } else if(xml.top()=='<') { cout<<"Tag is:<"; while(tag.size()!=1) { cout<<tag.top(); tag.pop(); } tag.pop(); cout<<endl; break; } } } } }
输入
<TITLE>Empire Burlesque</TITLE><ARTIST>Bob Dylan</ARTIST><COUNTRY>USA</COUNTRY> 输出 Tag is:<TITLE> Contents is:Empire Burlesque Tag is:<ARTIST> Contents is:Bob Dylan Tag is:<COUNTRY> Contents is:USA