有以下模板文本(其中用一对标记{{}}标识用于查找和替换的文本):
<!DOCTYPE html>
<html>
<head>
<title>User {{name}}</title>
</head>
<body>
<h3>{{name}}</h3>
<p>Email:<a
href="mailto:{{email}}">{{email}}</a></p>
<p>Address:{{address}}</p>
</body>
</html>
对标记{{var}}内的文本按其内的标识名var批量处理。
用于查找、替换的文本:
name "wwu"
email "wwuhn@163.com"
要处理为:
<!DOCTYPE html>
<html>
<head>
<title>User wwu</title>
</head>
<body>
<h3>wwu</h3>
<p>Email:<a
href="mailto:wwuhn@163.com">wwuhn@163.com</a></p>
<p>Address:</p>
</body>
</html>
编程思路:
目标文本用vector<string>content存放。
替换文本用map<string,string>findReplace存放。
然后扫描content,查找形如{{var}}的字符串,将其用findReplace[var]替换。
字符串的查找替换使用string类的成员函数find()和replace()完成。
#include <iostream>
#include <vector>
#include <string>
#include <map>
using namespace std;
vector<string> content; // 包括需要替换内容的文本(需要替换的内容用{{}}标识关键字)
map<string,string> findReplace; // 需要替换的关键字和目标替换内容
int textLines,keys; // 目标处理文本和用于替换的文本的行数
void trans(){ // 网页转换
for(int i=0; i<textLines; i++) // 逐行处理
{
int pos=0,pos1,pos2;
do{
pos1=content[i].find("{{",pos);
pos2=content[i].find("}}",pos1);
if(pos1>=0 && pos2>=0){ // 找到 {{ }}
string var=content[i].substr(pos1+2,pos2-pos1-2);
if(findReplace.count(var)){ // 提取形如 {{var}}的内容
string result=findReplace[var].substr(2,findReplace[var].length()-3);
content[i].replace(pos1,var.length()+4,result);
}
else
content[i].replace(pos1,var.length()+4,"");
pos=pos1+var.length();
}
else // 没有打到{{ }},pos指向当前字符串末尾
pos=content[i].length();
}while(pos<content[i].length());
}
}
int main()
{
int i=1;
string line;
cin>>textLines>>keys;
cin.ignore(); // 屏蔽回车键
for(i=0;i<textLines;i++){
getline(cin,line);
content.push_back(line);
}for(i=0;i<keys;i++){
getline(cin,line);
int pos=line.find(" ");
findReplace.insert(map<string,string>::value_type(line.substr(0,pos),line.substr(pos)));
}
trans();
for(i=0;i<textLines;i++)
cout<<content[i]<<endl;
restart:
goto restart;
return 0;
}
/*
12 2
<!DOCTYPE html>
<html>
<head>
<title>User {{name}}</title>
</head>
<body>
<h3>{{name}}</h3>
<p>Email:<a
href="mailto:{{email}}">{{email}}</a></p>
<p>Address:{{address}}</p>
</body>
</html>
name "wwu"
email "wwuhn@163.com"
*/
测试时,可直接复制粘贴以上备注内容。
适当改写,模板文本可以放到文本文件,再读取到content中。
当然,也可用到图形界面的文本处理中。
res:
李春葆 李筱《直击招聘 程序员面试笔记 算法设计深度解析》
-End-
用HTML代码速查表
标记或参数定 义<A>连结标记<ADDRESS>地址标记(斜体效果)<AREA>连结区域标记(设定各连结区域)alink点击连结时的样式。例:alink="#FF0000"align水平方向摆放位置。例:align="center"alternate来回走动,例:behavior=alternatealt在连结中插入文字说明。例:alt="绿叶园"<B>字体加粗标记(产生字体加粗的效果)<BODY>正文标记(设计文件格式及内文所在)<BR>换行标记(令文字、图片等显示在下一行)<BIG>字体加大标记(令字体稍为加大)<BLINK>闪烁文字标记(令文字产生闪烁效果)<BGSOUND>背景声音标记(于背景播放声音或音乐)<BASE>连结基准标记(可将网页中所有的相对路径转换成绝对路径)<BASEFONT>基准字形标记(设定所有字的字形、大小、颜色)<BLOCKQUOTE>引述文字区块、令文字在表格的上下左右留有一定的空间background背景墙纸。例:background=01.JPGbgcolor背景颜色。例:bgcolor="#ff0000"bgproperties固定背景墙纸。例:bgproperties="fixed"border边框。例:border=10bordercolor边框颜色。例:bordercolor="#000080"bordercolorlight边框向光部分的颜色。例:bordercolorlight="#000000"bordercolordark边框背光部分的颜色。例:bordercolordark="#ffffff"bottom置于底端。例:valign="bottom"behavior卷动方式。例:behavior=alternate_blank表示连结的目标地址在新建窗口中打开。例:target=_blank
<CENTER>居中标记(令文字、图片、表格等显示于中间)<CAPTION>表格标题(做成一打通列以填入表格标题)<CODE>程式码(字体稍为加宽如)<CITE>引述(斜体效果)colspan该单元格向右打通。例:colspan="5"color颜色。例:color="#00FF00"cellspacing单元格间距。例:cellspacing="5"cellpadding单元格衬距。例:cellpadding="10"
<DIV>区域标记<DFN>述语定义标记(斜体效果)<DIR>目录清单标记(清单项目将以圆点排列,如<UL>)<DL>定义清单标记(清单分两层出现)<DT>定义条目标记(标示该项定义的标题)<DD>定义内容标记(标示定义内容)direction方向。例:direction=up<EM>强调标记(字体出现斜体效果)<EMBED>多媒体标记
<MENU>选单清单标记(清单项目将以圆点排列,如<UL>)<META>开头定义标记<MAP>影像地图名称标记(设定影像地图名称)<MARQUEE>走动标记middle居中。例:align="middle"marginwidth框架左右边缘与框架内的文件保留的空间。例:marginwidth=0marginhight框架上下边缘与框架内的文件保留的空间。例:marginheight=0
<NOBR>不换行标记(强制文字不自动换行)<NOFRAMES>不支持框架标记(当旧式浏览器不支援框架时显示提示)name参考点(锚点)。例:<a ></a>no否。例:scrolling=nonoshade平面显示。例:<hr noshade>noresize锁住框架窗口的大小
<OL>顺序清单标记(清单项目将以数字、字母顺序排列)
<P>段落标记(为字、画、表格等之间留一空白行)<PRE>预设格式标记(令文件按照原始码的排列方式显示)_parent父窗口(连结的目标网页在本窗口中打开)。例:target=_parentplaybutton在媒体播放面板中显示播放按钮pausecutton在媒体播放面板中显示暂停按钮
<STRONG>加重语气标记(产生字体加粗 Bold 的效果)<SMALL>字体缩细标记(令字体稍为缩细)<STRIKE>划删除线标记(为字体加一删除线)<SAMP>范例标记(字体稍为加宽如)<SUB>下标字标记<SUP>上标字标记<STYLE>样式表标记<SPAN>自订标记(独立使用或与样式表同用)<SELECT>选择标记(建立 pop-up 走动清单)<SCRIPT>引用脚本标记size大小。例:size="7"src来源。例:src="http://sheng999.blog.163.com/blog/logo.gif"_self相同窗口(在相同的框架中显示连结的内容)。例:target="_self">starttime开始播放的时间。例:starttime="00:10"smallconsole显示较小的面板。例:cstopbutton显示停止按钮。例:cscrolling滚动条。例:scrolling=noscroll走动。例:behavior="scroll"scrollamount走动的速度。例:scrollAmount=25scrolldelay走动的停顿时间。例:scrolldelay=1000slide逐格走动(幻灯式)。例:behavior="slide"
<TITLE>网页文件标题标记<TABLE>表格标记<TR>表格的行<TD>表格的列<TH>表格标头(相等于<TD>,但其内之字体会变粗)<TT>打字字体(Courier字体,字母宽度相同)<TEXTAREA>文字区块(提供文字方盒以输入较大量文字)topmargin网页的上边距。例:topmargin=10top上方。例:valign="top"text整个网页的文字颜色。例:text=#CE0063target超级连接打开窗口模式。例:target=_blank_top将连结的网页显示在没有框架的窗口中。例:target=_toptype样式。例:type="text/css"true是。例:loop="true"
<U>下划线标记(给文本加上底线)<UL>无序清单(清单项目将以圆点排列)
<VAR>变数标记(斜体效果)valign摆放位置(垂直方向)。例:valign="top"vlink被访问后超链接文字的样式。例:vlink="#0000FF"vspace图片上下的空间。例:vspace=20volume音量(设定音量大小)。例:volume="100"volumelever显示音量调整钮。例:c
<WBR>建议换行标记(预设换行部位)width宽度、长度。例: width="540"
考生回忆】五、反食品浪费法实施后,G市市场监管局开出的首张《责令改正通知书》引发了社会热议。请根据“给定资料5”,以G市市场监管局的名义撰写一封公开信,回应社会关切,正确引导舆论,营造良好的执法环境。(30分)
要求:(1)观点鲜明,内容全面;(2)逻辑清晰,用语恰当;(3)字数800-1000字。
【参考范文】:
致社会各界的公开信
社会各界朋友:
民以食为天,“杜绝食品浪费”如今已不只是一句口号,4月29日,《中华人民共和国反食品浪费法》正式颁布实施,这也意味着,针对食品浪费现象的执法工作能够有法可依。因本市XX中学食堂存在的蔬菜过度挑选等食品浪费问题,5月11日,我市市场监管局向该中学开出了首张《责令改正通知书》, 并对当事人进行了约谈,该中学负责人也意识到食品浪费的严重性,当场表示要通过一系列改进措施减少浪费。
详情查看链接
2022年国家公务员考试申论范文(行政执法岗)
https://pingdingshan.huatu.com/2021/1216/2229714.html
*请认真填写需求信息,我们会在24小时内与您取得联系。