HDU-1088Write a simple HTML Browser
2014-04-26 17:20
323 查看
[align=left]Problem Description[/align]
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.
[align=left]Input[/align]
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>.
[align=left]Output[/align]
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.
[align=left]Sample Input[/align]
[align=left]Sample Output[/align]
代码;
题意 :输入1串字符 每行最多80个,每个单词都是连续的,不连续的不算一个单词 即不给空格 tab 等分开的字符 一个单词中不包含< > 包含其他符号
遇到 <br> 则输出空格
遇到<hr> 则换到下一行 然后输出80个- 然后再换一行 注意 如果是已经在一个新的一行了 就不用再换到下一行后再输出80个‘-’ 就可以直接输出
输出的时候 每行最多有80个字符 每个单词之间有1个空格
用到了比较字符串函数strcmp()...
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.
[align=left]Input[/align]
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>.
[align=left]Output[/align]
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.
[align=left]Sample Input[/align]
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.
[align=left]Sample Output[/align]
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.
代码;
#include<stdio.h> #include<string.h> int main() { int i,flag,num; char str[100]; num=0; flag=0;//状态变量 while(scanf("%s",str)!=-1) { if(strcmp(str,"<br>")==0) { printf("\n"); num=0; flag=0; } else if(strcmp(str,"<hr>")==0) { if(flag!=0) printf("\n"); for(i=1;i<=80;i++) printf("-"); printf("\n"); flag=0; num=0; } else if(flag==0) { printf("%s",str); flag=1; num+=strlen(str); } else { num+=strlen(str)+1; if(num>80) { printf("\n"); num=strlen(str); printf("%s",str); } else printf(" %s",str); } } if(flag!=0) printf("\n"); return 0; }思路解析:
题意 :输入1串字符 每行最多80个,每个单词都是连续的,不连续的不算一个单词 即不给空格 tab 等分开的字符 一个单词中不包含< > 包含其他符号
遇到 <br> 则输出空格
遇到<hr> 则换到下一行 然后输出80个- 然后再换一行 注意 如果是已经在一个新的一行了 就不用再换到下一行后再输出80个‘-’ 就可以直接输出
输出的时候 每行最多有80个字符 每个单词之间有1个空格
用到了比较字符串函数strcmp()...
相关文章推荐
- hdu 1596(SPFA)
- hdu 2424
- hdu 1391Number Steps
- HDU 4406 GPA(最大费用最大流)
- HDU 1102 Constructing Roads
- Hdu 4575 Changsha Marathon 2013长沙邀请赛
- HDU Doing Homework
- HDU 1068 Girls and Boys (二分图匹配---最大独立集)
- hdu 4279 Number (欧拉函数 - 约数个数)
- hdu 2114 数学公式!!!
- HDU1163 Eddy's digital Roots(九余数定理)
- HDU 1159 Common Subsequence【LCS】
- hdu 1595 最短路
- hdu 5014——Number Sequence
- HDU 3681 Prison Break floyd+状压+二分
- hdu 5011 Game 博弈
- 进制转换 HDU 2031 注意-2147483648变为正数后用int存会溢出
- hdu 2612 Find a way
- hdu 5340 manacher
- hdu 2068 RPG的错排 错排