-
[1093] HTML
- 时间限制: 1000 ms 内存限制: 65535 K
- 问题描述
-
If you ever tried to read a html document on a Macintosh, you know how hard it is if no Netscape is installed.
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. - 输入
-
The input consists of a text you should display. This text consists of words and HTML tags separated by one or more spaces, tabulators or newlines.
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>. - 输出
-
You should display the the resulting text using this rules:
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. - 样例输入
-
Hallo, dies ist eine ziemlich lange Zeile, die in Html aber nicht umgebrochen wird. <br> Zwei <br> <br> produzieren zwei Newlines. Es gibt auch noch das tag <hr> was einen Trenner darstellt. Zwei <hr> <hr> produzieren zwei Horizontal Rulers. Achtung mehrere Leerzeichen irritieren Html genauso wenig wie mehrere Leerzeilen.
- 样例输出
-
Hallo, dies ist eine ziemlich lange Zeile, die in Html aber nicht umgebrochen wird. Zwei produzieren zwei Newlines. Es gibt auch noch das tag -------------------------------------------------------------------------------- was einen Trenner darstellt. Zwei -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- produzieren zwei Horizontal Rulers. Achtung mehrere Leerzeichen irritieren Html genauso wenig wie mehrere Leerzeilen.
- 提示
-
无
- 来源
-
Ulm Local 1999
如果遇到 <br> 则输出空格遇到<hr> 则换到下一行 然后输出80个- 然后再换一行 注意 如果是已经在一个新的一行了 就不用再换到下一行后再输出80个‘-’ 就可以直接输出输出的时候 每行最多有80个字符 每个单词之间有1个空格#include<stdio.h> #include<string.h> int main() { char str[100]; int cnt=0;//数每行的字符数 bool first=true;//记录是否是一行的开头 while(scanf("%s",&str)!=EOF) { if(strcmp(str,"<br>")==0){printf("\n");cnt=0;first=true;continue;} if(strcmp(str,"<hr>")==0) { if(!first){printf("\n");first=true;} for(int i=0;i<80;i++)printf("-"); printf("\n");first=true;cnt=0; continue; } if(first) { printf("%s",str); cnt+=strlen(str);first=false; continue; } cnt+=(strlen(str)+1);first=false; if(cnt<=80) { printf(" %s",str); continue; } else { printf("\n"); printf("%s",str); cnt=strlen(str);first=false; } } if(!first)printf("\n");//最后以新行结束 return 0; }
NOJ[1093] HTML 即HDU1088 对字符串的处理
最新推荐文章于 2022-12-29 09:40:04 发布