题目链接: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;
}
HDU 1088 [Write a simple HTML Browser] 字符串处理
原文:http://www.cnblogs.com/G-M-WuJieMatrix/p/6416647.html