NOJ1093[HTML]

学了web 就要来做点关于web的题目(神逻辑)……
题目链接:http://acm.nbut.cn/Problem/view.xhtml?id=1093
题目大意就是 你要输入好多好多的字符串 其中可能有些是tag(标签),也就是我们要特别考虑的,要注意的是<br>和<hr>的区别,还有<hr>是否在首行开头的区别,注意一行最多80个字符,假如现在这行有78个,你还有一个字符串要5个长度,只能在下一行了,其它也就没什么了
代码:
#include<iostream>
#include<cstring>
using namespace std;
char html[100];
char htm[11100];
int main()
{
    int i,t=0,flag=1,len=0,str;
    while(cin>>html)
    {
        if( !strcmp(html,"<br>"))
        {
            htm[t++]='\n';
            flag=1;   //flag用来标记是否在一行的开头
            len=0;  //len是指这一行的字符串的长度
        }
        else if( !strcmp(html,"<hr>"))
        {
            if(flag==0)
                htm[t++]='\n';
            for(i=0;i<80;i++)   
                htm[t++]='-';
            htm[t++]='\n';
            flag=1;
            len=0;
        }
        else
        {
            str=strlen(html);
            if( str+len+1 >80 ) //这边的+1 是指2个字符串之间的空格 不要忘记了
            {
                htm[t++]='\n';
                for(i=0;html[i]!='\0';i++)
                {
                    htm[t++]=html[i];
                }
                len=str;
                flag=0;
            }
            else
            {
                if(flag==0)
                    htm[t++]=' ';
                for(i=0;html[i]!='\0';i++)
                {
                    htm[t++]=html[i];
                }
                len+=str+1;
                flag=0;
            }
        }
    }
    cout<<htm<<endl;       
}
PS:1097html again等待大神解救我 TLE中、、、
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值