ccf Markdown

来源:互联网 发布:js获取星期转换为大写 编辑:程序博客网 时间:2024/04/28 11:40

说实话,这种题如果给我返回结果我是一定可以写出来的但是ccf不返回结果很烦,这种题我根本不能一次写对。还有重写时发现好多考试之前根本没注意到的点比如删掉空行

。。。。。。。=_=

#include<bits/stdc++.h>using namespace std;string s;void emp(int ss,int e);void link(int ss,int e);void out(int ss,int e){     for(int j=ss;j<=e;j++)    {        if(s[j]=='_')        {            int t=j+1;            while(s[t]!='_') t++;            emp(j,t);            j=t;        }        else if(s[j]=='[')        {            int t=j+1;            while(s[t]!=')') t++;            link(j,t);            j=t;        }        else cout<<s[j];    }}void emp(int ss,int e){    cout<<"<em>";    out(ss+1,e-1);    cout<<"</em>";}void link(int ss,int e){    int i=ss+1;    while(s[i]!=']') i++;    int t=i+1;    while(s[t]!=')') t++;    cout<<"<a href="<<'"';    out(i+2,t-1);    cout<<'"'<<'>';    out(ss+1,i-1);    cout<<"</a>";}void line(){    int i=1;    while(s[i]==' ') i++;    cout<<"<li>";    out(i,s.length()-1);    cout<<"</li>"<<endl;}void title(){    int cnt=0,i=0;    while(s[i]=='#')    {        i++;        cnt++;    }    while(s[i]==' ')    {        i++;    }    cout<<"<h"<<cnt<<'>';    out(i,s.length()-1);    cout<<"</h"<<cnt<<'>'<<endl;}int main(){    //freopen("in.txt","r",stdin);    while(getline(cin,s))    {//cout<<s[0];        if(s[0]=='#')        title();        else if(s[0]=='*')        {            cout<<"<ul>"<<endl;            line();            while(getline(cin,s)&&s[0]=='*')            {                line();            }            cout<<"</ul>"<<endl;        }        else if(s[0]>=32&&s[0]<=126){            cout<<"<p>";            out(0,s.length()-1);            while(getline(cin,s)&&s[0]>=32&&s[0]<=126)            {cout<<endl;                out(0,s.length()-1);            }            cout<<"</p>"<<endl;        }    }}


原创粉丝点击