题意:
编写一段程序,可以识别字符串中的<br>,<hr>标记,并且对多余的空格和换行剔除。每行(包括空格)的字符长度不长于80。
<br>输出:换行;
<hr>输出:80个 - 符号(一行);
长度大于80时:换行
示例输入:
Hallo, dies ist eine
ziemlich lange Zeile, die in Html
aber nicht umgebrochen wird.
<br>
Zwei <br> <br> produzieren zwei Newlines.
Es gibt auch noch das tag <hr> was einen Trenner darstellt.
Zwei <hr> <hr> produzieren zwei Horizontal Rulers.
Achtung mehrere Leerzeichen
irritierenHtml genauso wenig
wiemehrere Leerzeilen.
示例输出:
Hallo, dies ist eine ziemlich lange Zeile, die in Html aber nicht umgebrochen
wird.
Zweiproduzieren zwei Newlines. Es gibt auch noch das tag
--------------------------------------------------------------------------------
was einen Trenner darstellt. Zwei
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
produzieren zwei Horizontal Rulers. Achtung mehrere Leerzeichen irritieren Html
genauso wenig wie mehrere Leerzeilen.
解决方案:
注意:
1、只有<hr><br>两种标记
2、每个单词间都有空间或换行
#include<stdio.h>
#include<string.h>
int main()
{
int sumChar;//一行字符个数统计
char str[81];//单词暂时存放变量
sumChar=0;
while(scanf("%s",str)!=EOF)
{
if(strcmp(str,"<br>")==0)
{
printf("\n");
sumChar=0;
}
else if(strcmp(str,"<hr>")==0)
{
if(sumChar!=0)//处理此类情况:Zwei <hr> <hr> produzieren
printf("\n");
printf("--------------------------------------------------------------------------------\n");
sumChar=0;
}
else
{
if(sumChar+strlen(str)+1<=80)
{
if(sumChar==0)
printf("%s",str);
else
printf(" %s",str);
sumChar+=strlen(str)+1;
}
else
{
printf("\n");
printf("%s",str);
sumChar=strlen(str);
}
}
}
printf("\n");
return 0;
}