其他语言

本类阅读TOP10

·基于Solaris 开发环境的整体构思
·使用AutoMake轻松生成Makefile
·BCB数据库图像保存技术
·GNU中的Makefile
·射频芯片nRF401天线设计的分析
·iframe 的自适应高度
·BCB之Socket通信
·软件企业如何实施CMM
·入门系列--OpenGL最简单的入门
·WIN95中日志钩子(JournalRecord Hook)的使用

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
浙大在线评测 1099 HTML

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

Problem:

    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.


Input:

    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>.


Output:

    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.


Sample Input:

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.


Sample Output:

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.


Solution:

// 声明:本代码仅供学习之用,请不要作为个人的成绩提交。
// http://blog.csdn.net/mskia
// email: [email protected]

#include <iostream>
#include <string>
using namespace std;

int main( void ) {
    string text;
    int colCount = 0;
   
    while ( cin >> text ) {
        if ( text == "<br>" ) {
            cout << endl;
            colCount = 0;

        } else if ( text == "<hr>" ) {
            if ( colCount > 0 ) {
                cout << endl;
            }
               
            cout << "----------------------------------------"
                 << "----------------------------------------"
                 << endl;
            colCount = 0;

        } else {
            int length = text.length( );
            if ( colCount > 0 ) {
                if ( colCount + length > 79 ) {
                    cout << endl;
                    colCount = 0;
                } else {
                    cout << " ";
                    ++colCount;
                }
               
                cout << text;
                colCount += length;

            } else {
                if ( colCount + length > 80 ) {
                    cout << endl;
                    colCount = 0;
                }
               
                cout << text;
                colCount += length;
               
            }
           
        }
    }
   
    cout << endl;
    return 0;
}




相关文章

相关软件