#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<algorithm> using namespace std;
const int maxn=1e2+;
char str[maxn]; void line(int l,int r){
int i=l;
while(str[i]=='#'||str[i]=='*'||str[i]==' ') i++;
while(i<=r){
if(str[i]=='_'){
i++;
int x,y;
x=i;
while(str[i]!='_') y=i,i++;
i++;
printf("<em>");
line(x,y);
printf("</em>");
}else if(str[i]=='['){
i++;
int l1,r1,l2,r2;
l1=i;
while(str[i]!=']') r1=i,i++;
i+=;
l2=i;
while(str[i]!=')') r2=i,i++;
i++;
printf("<a href=\"");
line(l2,r2);
printf("\">");
line(l1,r1);
printf("</a>");
}else{
printf("%c",str[i]);
i++;
}
}
}
void title(){
int len=strlen(str);
len--;
int i;
for(i=;i<len;i++){
if(str[i]!='#') break;
}
printf("<h%d>",i);
line(,strlen(str)-);
printf("</h%d>\n",i);
}
void unlist(){
printf("<ul>\n");
printf("<li>");
line(,strlen(str)-);
printf("</li>\n");
while(fgets(str,maxn,stdin)!=NULL){
if(str[]=='\n') break;
printf("<li>");
line(,strlen(str)-);
printf("</li>\n");
}
printf("</ul>\n");
}
void para(){
printf("<p>");
line(,strlen(str)-);
while(fgets(str,maxn,stdin)!=NULL){
if(str[]=='\n'){
break;
}
printf("\n");
line(,strlen(str)-);
}
printf("</p>\n");
}
int main(){
while(fgets(str,maxn,stdin)!=NULL){
if(str[]=='\n') continue;
if(str[]=='#'){
title();
}else if(str[]=='*'){
unlist();
}else{
para();
}
}
return ;
}

【CCF】 Markdown 模拟的更多相关文章

  1. ccf认证模拟题之三---最大的矩形

    问题描述 在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i(1 ≤ i ≤ n)个矩形的高度是hi.这n个矩形构成了一个直方图.例如,下图中六个矩形的高度就分别是3, 1, 6, 5, 2, 3 ...

  2. CCF 模拟试题——出现次数最多的数 官方答案解析及自己写的正确答案

    前几天知道的CCF计算机职业资格认证考试,觉得好像比软考含金量高一些,就去了解了一下,做了模拟试题中的 “出现次数最多的数” 这道题,我的算法和官方答案算法不同,个人觉得觉得官方的好一点,没那么繁琐, ...

  3. 更换Mac记录

    1. 重装Mac (1)格式化硬盘 (2)重装系统 (3)修改各种配置:电脑名.键盘等 2. 安装必要软件 (1)QQ.微信.网易云音乐等 (2)火狐.谷歌.SourceTree等 (3)安装Git ...

  4. CCF CSP 201703-3 Markdown

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201703-3 Markdown 问题描述 Markdown 是一种很流行的轻量级标记语言(l ...

  5. CCF 201703-3 Markdown

    问题描述   试题编号: 201703-3 试题名称: Markdown 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 Markdown 是一种很流行的轻量级标记语言(lig ...

  6. CCF 201403-3 命令行选项 (STL模拟)

    问题描述 请你写一个命令行分析程序,用以分析给定的命 令行里包含哪些选项.每个命令行由若干个字符串组成,它们之间恰好由一个空格分隔.这些字符串中的第一个为该命令行工具的名字,由小写字母组成,你的程序 ...

  7. CCF 201403-2 窗口 (STL模拟)

    问题描述 在某图形操作系统中,有 N 个窗口,每个窗口都是一个两边与坐标轴分别平行的矩形区域.窗口的边界上的点也属于该窗口.窗口之间有层次的区别,在多于一个窗口重叠的区域里,只会显示位于顶层的窗口里的 ...

  8. CCF 炉石传说(模拟)

    试题编号: 201612-3 试题名称: 炉石传说 时间限制: 1.0s 内存限制: 256.0MB 问题描述 <炉石传说:魔兽英雄传>(Hearthstone: Heroes of Wa ...

  9. CCF 201512-3 画图 (DFS搜索+模拟)

    问题描述 用 ASCII 字符来画图是一件有趣的事情,并形成了一门被称为 ASCII Art 的艺术.例如,下图是用 ASCII 字符画出来的 CSPRO 字样. ..____.____..____. ...

随机推荐

  1. javaweb基础(25)_jsp标签实例一

    一.简单标签(SimpleTag) 由于传统标签使用三个标签接口来完成不同的功能,显得过于繁琐,不利于标签技术的推广, SUN公司为降低标签技术的学习难度,在JSP 2.0中定义了一个更为简单.便于编 ...

  2. vue框架初学习的基本指令

           学习地址:<ahref="https: cn.vuejs.="" org="" "="" targe ...

  3. js动态刷新时间

    <script type="text/javascript"> //取得系统当前时间 function getTime(){ var myDate = new Date ...

  4. JZOJ 5773. 【NOIP2008模拟】简单数学题

    5773. [NOIP2008模拟]简单数学题 (File IO): input:math.in output:math.out Time Limits: 1000 ms  Memory Limits ...

  5. 迭代器Iterator与语法糖for-each

    一.为什么需要迭代器 设计模式迭代器 迭代器作用于集合,是用来遍历集合元素的对象.迭代器迭代器不是Java独有的,大部分高级语言都提供了迭代器来遍历集合.实际上,迭代器是一种设计模式: 迭代器模式提供 ...

  6. Flask初学者:g对象,hook钩子函数

    Flask的g对象 作用:g可以可以看作是单词global的缩写,使用“from flask import g”导入,g对象的作用是保存一些在一次请求中多个地方的都需要用到的数据,这些数据可能在用到的 ...

  7. 求 1 到 n 的所有数的约数和

    求 1 到 n 的所有数的约数和 暴力方法就是枚举每个数,算出他的约数和即可,这样有点慢. 另一种思路,枚举约数,判断他是谁的约数,并记录(即他的倍数有多少个),在乘以他自己. n/i求的是n以内,i ...

  8. day 16 JS DOM 继续

    为什么有jquey了还学DOM  ? 因为JQuey 是大而全,可能有10k 但是我们用到的只有1k  网站小没事,网站大流量就是问题 所以大网站都是自己用DOM 实现一个类似于JQuey 的适合自己 ...

  9. APK无源码使用Robotium简单总结

    1.使用re-sign.jar对待测包进行重签名,并记录下包名和主Activity名. 2.在Eclipse中点击File-New-Other 选择Android下的Android Test Proj ...

  10. [超级基础]Web安全之SQL注入由浅入深(?)

    前言 断断续续看Web安全到现在了,感觉对很多基础知识还是一知半解,停留在模糊的层次.所以准备系统总结一下. Sql注入我以前一直不以为然,一是现在能sql的站确实很少,二是有像sqlmap的工具可以 ...