HDU 1088(文本处理 **)

题意是对一段文本进行处理,如果读到 <br>,则换行;如果读到 <hr>,若当前行无字符,则输出 80 个 ’-‘ 并换行,否则在下一行输出 80 个 ’-‘ 再换行;如果一行的字符数(含空格)已达到 80,则换行。

记录一下当前行的字符数模拟即可,代码如下:

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 int main()
 4 {
 5     char s[10000];
 6     int len,cnt = 0;
 7     while(~scanf("%s",s))
 8     {
 9         if(!strcmp(s,"<br>"))
10         {
11             printf("\n");
12             cnt = 0;
13         }
14         else if(!strcmp(s,"<hr>"))
15         {
16             if(cnt) printf("\n--------------------------------------------------------------------------------\n");
17             else printf("--------------------------------------------------------------------------------\n");
18             cnt = 0;
19         }
20         else
21         {
22             len = strlen(s);
23             if(!cnt) //该行尚无字符
24             {
25                 cnt = len;
26                 printf("%s",s);
27             }
28             else if(cnt+len+1 > 80) //该行字符数会超过80
29             {
30                 cnt = len;
31                 printf("\n%s",s);
32             }
33             else //该行已有字符,但字符数不会超过80
34             {
35                 cnt += len+1;
36                 printf(" %s",s);
37             }
38         }
39     }
40     printf("\n");
41     return 0;
42 }
View Code

 

转载于:https://www.cnblogs.com/Taskr212/p/9597790.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值