zoukankan      html  css  js  c++  java
  • 换行输出HDU1088:Write a simple HTML Browser

    题记:写这篇博客要主是加深自己对换行输出的认识和总结实现算法时的一些验经和训教,如果有错误请指出,万分感谢。

        

    Problem Description

        

    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.
     

        
     

        题意:1.涌现<br>换行

        2.涌现<hr>输出‘-’

        3.每一行的加上现在的单词如果长度超过80则换行,每一个单词前留一个空格

        4.结束时要输出换行

        解法:知道了题意以后,就是很简单的标题了,注意处理就可以了

    #include <stdio.h>
    #include <string.h>
    
    int main()
    {
        char s[10000];
        int len;
        int cnt = 0;
        while(~scanf("%s",s))
        {
            if(!strcmp(s,"<br>"))
            {
                cnt = 0;
                printf("\n");
            }
            else if(!strcmp(s,"<hr>"))
            {
                if(cnt)
                printf("\n--------------------------------------------------------------------------------\n");
                else
                printf("--------------------------------------------------------------------------------\n");
                cnt = 0;
            }
            else
            {
                int len = strlen(s);
                if(!cnt)
                {
                    cnt = len;
                    printf("%s",s);
                }
                else if(cnt+len+1>80)
                {
                    cnt=len;
                    printf("\n%s",s);
                }
                else
                {
                    cnt+=len+1;
                    printf(" %s",s);
                }
            }
        }
        printf("\n");
    
        return 0;
    }

        
     

    文章结束给大家分享下程序员的一些笑话语录: 关于编程语言
    如果 C++是一把锤子的话,那么编程就会变成大手指头。
    如果你找了一百万只猴子来敲打一百万个键盘,那么会有一只猴子会敲出一 段 Java 程序,而其余的只会敲出 Perl 程序。
    一阵急促的敲门声,“谁啊!”,过了 5 分钟,门外传来“Java”。
    如果说 Java 很不错是因为它可以运行在所有的操作系统上,那么就可以说 肛交很不错,因为其可以使用于所有的性别上。

  • 相关阅读:
    JDBC编程总结
    JDBC
    Java之Hashtable、HashMap及Properties
    List集合和Set集合的基本应用
    为什么Java中有多态?
    面向对象的特征有哪些?
    Java基础测试题背后的认知
    PHP实现将浏览历史页面网址保存到cookie的方法
    字符串的常用函数
    SAP中寻找增强的实现方法(转)
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3089583.html
Copyright © 2011-2022 走看看