题目大意
就是给你一篇文章,按照html格式输出。
输出的时候每行不能超过80个字符,如果超过了,就换行输出那个单词,多个空格按一个输出。
遇见<br>就换行,遇见<hr>就输出------------------------------------------------------------------
算法
模拟。。。
注意:
交上去一直pe,其实要注意几点:
1:每行的最后一个单词后没有空格; 2:如果输出一个单词导致这行长度大于80,那么换行后再输出; 3:如果<hr>出现在一行的开头,那么在输出“---”前不需要换行; 4:最后要输出一个换行...
代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void Input();
//void Solve();
void Print();
void Input()
{
//FILE *f;
//f = freopen("out.txt", "w", stdout);
char str[81];
int limlen = -1,flag = 0;
while (scanf("%s", str) != EOF)
{
if ( ! strcmp(str, "<br>"))
{
flag = 0;
limlen = -1;
printf("\n");
}
else if ( ! strcmp(str, "<hr>"))
{
if (! flag && limlen != -1)
{
printf("\n");
flag = 1;
}
limlen = -1;
Print();
}
else
{
flag = 0;
if (limlen + strlen(str) + 1 > 80)
{
limlen = -1;
printf("\n%s",str);
limlen += strlen(str) + 1;
}
else
{
if (limlen == -1)
{
printf("%s", str);
}
else
printf(" %s", str);
limlen += strlen(str) + 1;
}
}
}
}
//
//void Solve()
//{
//
//}
void Print()
{
printf("--------------------------------------------------------------------------------\n");
}
int main()
{
Input();
printf("\n");
//Solve();
//Print();
return 0;
}
limlen = -1 是为了第一个单词开始不输出空格,以后这一行的单词前面都输出一个空格
flag = 0 是为了第一个hr要先输出一个换行,然后输出----------------------------换行,如果后面紧跟着hr那么就直接输出--------------------------换行。
每次长度多加一个空格的长度就行了。
好久不写了,手生啊。。。