hdu 1088 Write a simple HTML Browser 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1088
字符串处理小水题
题目大意:写一个会按照HTML语法规则处理输入并输出的程序
题目分析:要点有三。
(1)80个字符一行,一个单词不可断成两截,所以超了的就要全部移到下一行;
(2)<br>换行符,没什么好说;
(3)<hr>分割线,就是占满一行的80个减号,(这里注意,分割线相当于一个80个字符的单词,若此行本来有内容,则需换行后打印分割线)
code:
#include<stdio.h>
#include<string.h>
int main()
{
int rlen=0,i;//rlen代表row length,是当前状态一行的字符数
char c[90];
while(scanf("%s",c)!=EOF)
{
if(!strcmp(c,"<br>"))
{
printf("\n");
rlen=0;
}
else if(!strcmp(c,"<hr>"))
{
if(rlen)printf("\n");
for(i=0;i<80;i++)printf("-");
printf("\n");
rlen=0;
}
else if(rlen+strlen(c)+1>80)
{
printf("\n%s",c);
rlen=strlen(c);
}
else
{
if(rlen)printf(" ");
printf("%s",c);
rlen+=(strlen(c)+1);
}
}
printf("\n");
return 0;
}
PS:又水一发!