//栈
- #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