题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1088
题目大意:给一段网页源文本,要求转换成可视文本。规则:word挤不下就换行,否则正常输出。遇到<br>换行,<hr>若在新行首不必换行,否则换行,显示分割线再换行。
关键思想:字符串处理
代码如下:
//规则:<br>换行,<hr>若在新行首不必换行,否则换行,显示分割线再换行 //输入整行有空格的,我们不一定要整行接收。看情况 #include <iostream> #include <string> using namespace std; int main(){ string w; int cnt=0;//cnt为当前行字符数,包括空格 while(cin>>w){ if(w=="<br>"){ cout<<endl; cnt=0;//换行 } else if(w=="<hr>"){ if(cnt!=0)cout<<endl; for(int i=0;i<80;i++)cout<<"-"; cout<<endl; cnt=0; } else if(w.size()+cnt<=80){ if(cnt==0)cout<<w; else cout<<" "<<w;//行末没有空格 cnt+=(w.size()+1);//有空格所以要+1 }else{ cout<<endl<<w; cnt=(w.size()+1); } } cout<<endl; return 0; }