http://acm.hdu.edu.cn/showproblem.php?pid=1088
Now, who can forget to install a HTML browser? This is very easy because most of the times you don't need one on a MAC because there is a Acrobate Reader which is native to MAC. But if you ever need one, what do you do?
Your task is to write a small html-browser. It should only display the content of the input-file and knows only the html commands (tags) <br> which is a linebreak and <hr> which is a horizontal ruler. Then you should treat all tabulators, spaces and newlines as one space and display the resulting text with no more than 80 characters on a line.
A word is a sequence of letters, numbers and punctuation. For example, "abc,123" is one word, but "abc, 123" are two words, namely "abc," and "123". A word is always shorter than 81 characters and does not contain any '<' or '>'. All HTML tags are either <br> or <hr>.
. If you read a word in the input and the resulting line does not get longer than 80 chars, print it, else print it on a new line.
. If you read a <br> in the input, start a new line.
. If you read a <hr> in the input, start a new line unless you already are at the beginning of a line, display 80 characters of '-' and start a new line (again).
The last line is ended by a newline character.
#include <cstdio>
#include <cstring>
char s[81];
int main()
{
int len, i;
int cnt = 0;//記錄一行有多少個字符
while(~scanf("%s", s))
{
if(strcmp(s,"<br>")==0)
{
printf("\n");
cnt = 0;
}
else if(strcmp(s,"<hr>")==0)
{
if(cnt != 0)
printf("\n");
printf("--------------------------------------------------------------------------------");
printf("\n");
cnt = 0;
}
else
{
len = strlen(s);
if(cnt+len+1 <= 80)//加單詞之前 前面還有個空格,所以要判斷加上這個單詞和這個空格之後 的長度是否大於80
{
if(cnt != 0)
printf(" ");
printf("%s", s);
cnt+=(len+1);
}
else
{
printf("\n");
printf("%s", s);
cnt = len;
}
}
}
printf("\n");
return 0;
}