写一个html解析程序,包含<br>和<hr>。
链接:link。
按照html语法,多个空白字符会被替换成一个空格。所以依次读取并处理连续字符即可,字符串之间用一个空格隔开即可。
时间复杂度取决于输入串的长度,总的时间复杂度为 O ( n ) \mathcal{O}(n) O(n)。
#include<cstdio>
#include<cstring>
int main(){
char str[90];
int leng=0;
while(scanf("%s",str)!=EOF){
if(strcmp(str,"<br>")==0){
printf("\n");
leng=0;
}else if(strcmp(str,"<hr>")==0){
if(leng!=0) printf("\n");
for(int i=0;i<80;i++) printf("-");
printf("\n");
leng=0;
}else{
if(leng==0){
printf("%s",str);
leng+=strlen(str);
}else if(leng+1+strlen(str)<=80){
printf(" %s",str);
leng+=strlen(str)+1;
}else{
printf("\n");
leng=strlen(str);
printf("%s",str);
}
}
}
printf("\n");
}