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("
");
12             cnt = 0;
13         }
14         else if(!strcmp(s,"<hr>"))
15         {
16             if(cnt) printf("
--------------------------------------------------------------------------------
");
17             else printf("--------------------------------------------------------------------------------
");
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("
%s",s);
32             }
33             else //该行已有字符,但字符数不会超过80
34             {
35                 cnt += len+1;
36                 printf(" %s",s);
37             }
38         }
39     }
40     printf("
");
41     return 0;
42 }
View Code
原文地址:https://www.cnblogs.com/Taskr212/p/9597790.html