编写一个迷你HTML浏览器。浏览器只显示输入文件的内容,并且只需要识别HTML标记:<br>是换行,<hr>是水平线。程序应该将所有的制表符、空格、换行符当做一个空格,每次输出不超过80个字符。
输入格式:
输入是浏览器所需要显示的文本。文件包含词和HTML标记,中间有一个或者多个空格,制表符和换行符。
词是一串字母,数字和标点。每个词不超过81个字符且不包含"<"或">"。Html标签只有<br>或<hr>。
输出格式:
对输入的一个单词,如果在当前行输出时不超过80个字符,那么就直接输出,否侧在下一行输出。
如果输入的是<br>, 则换行。
如果输入的是<hr>,则换行,如果恰好位于新行的开头就不必换行,输出80个“-”字符再换行。
最后是一个空行。
#include<stdio.h>
#include<string.h>
int main()
{
int count=0;
char word[81];
while(scanf("%s",word)!=EOF)
{
//处理<hr>标记
if(strcmp(word,"<hr>")==0)
{
//如果不是新行,则回车
if(count!=0) printf("\n");
int i;
for(i=0;i<80;i++) printf("-");
//清除计数器
count=0;
}
//处理<br>标记
else if(strcmp(word,"<br>")==0)
{
//回车并清除计数器
printf("\n");
count=0;
}
else{
//输出当前单词会超过80个字符
if(count+strlen(word)+(count==0?0:1)>80)
{
printf("\n%s",word);
count=strlen(word);
}
else{
//改单词能够在当前行输出
if(count!=0) printf(" ");
printf("%s",word);
count+=strlen(word)+1;
}
}
}
printf("\n");
return 0;
}