news 2026/6/5 12:16:30

UVa 391 Mark-up

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
UVa 391 Mark-up

题目描述

标记语言是帮助格式化文本文件的计算机语言。特殊关键字用于标记文本,以控制字体、页面样式、段落样式等。TeX\texttt{TeX}TeXtroff\texttt{troff}troffHTML\texttt{HTML}HTML都是标记语言的例子。

拼写检查很难适应这些特殊文本。通常,必须创建特殊处理器或拼写检查器来适应标记语言。特殊处理器会识别标记语言并将其从文本中剥离,以便“纯”文本可以被拼写检查器处理。对于本题,你需要为一种小型标记语言编写这样的处理器,使程序的输出是不带标记的纯文本。

标记语言命令

每个标记命令以反斜杠\开头。如果\后面的字母不是下表中识别的命令,则该字母作为纯文本输出。例如,标记\\可用于打印单个\

命令功能
\b切换粗体字体开关(默认关闭)
\i切换斜体字体开关(默认关闭)
\s设置字体大小;s后跟可选数字;如果省略数字,则恢复先前大小
\*切换标记处理开关(默认开启);如果关闭,则标记被视为文字文本

\s命令后的数字可以包含小数点,因此129.511..5都是有效的数字。

输入与输出

输入文件是包含上述标记的纯文本。开始时,标记处理应开启。处理到文件结束。

样例输入

\s18. \bMARKUP sample\b\s \*For bold statements use the \b command.\* If you wish to \iemphasize\i something use the \i command. For titles use \s14BIG\s font sizes, 14 points usually works well. Remember that all of the commands toggle except for the \s command.

样例输出

MARKUP sample For bold statements use the \b command. If you wish to emphasize something use the \i command. For titles use BIG font sizes, 14 points usually works well. Remember that all of the commands toggle except for the \s command.

题目分析

问题的本质

这是一个文本解析问题。需要识别并处理以\开头的标记命令,输出纯文本内容。标记处理可以开关(\*命令)。

命令处理规则

  1. \b:切换粗体(不输出任何字符)
  2. \i:切换斜体(不输出任何字符)
  3. \s:设置字体大小(不输出任何字符)
    • 后跟可选数字(可能含小数点)
    • 如果数字缺失,恢复先前大小
  4. \*:切换标记处理开关
  5. 其他\x:输出x(例如\\输出\
  6. 非命令字符:直接输出

处理状态

  • processing:标记处理是否开启(默认true
  • processing == false时,所有\后的字符都作为普通字符输出

参考代码

// Mark-up// UVa ID: 391// Verdict: Accepted// Submission Date: 2016-07-04// UVa Run Time: 0.000s//// 版权所有(C)2016,邱秋。metaphysis # yeah dot net#include<bits/stdc++.h>usingnamespacestd;intmain(intargc,char*argv[]){ios::sync_with_stdio(false);// 不跳过空白字符(保留空格和换行)cin.unsetf(ios::skipws);charcurrent,next;boolprocessing=true;// 标记处理开关,默认开启while(cin>>current){if(current=='\\'){cin>>next;// 开关标记处理if(next=='*'){processing=!processing;continue;}// 处理开启时if(processing){if(next=='b'||next=='i'){continue;// 切换格式,不输出}elseif(next=='s'){// 读取可选数字(可能含小数点)boolpointEncountered=false;while(cin>>next){if(isdigit(next))continue;elseif(next=='.'&&!pointEncountered){pointEncountered=true;continue;}else{cin.putback(next);// 将非数字字符放回break;}}}else{cout<<next;// 未知命令,输出字符本身}}else{// 处理关闭时,`\` 和后面的字符都作为普通文本输出cout<<current;cin.putback(next);}}else{cout<<current;}}return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/5 12:16:25

SD-PPP:如何在Photoshop中高效集成AI绘图与专业图像编辑工作流

SD-PPP&#xff1a;如何在Photoshop中高效集成AI绘图与专业图像编辑工作流 【免费下载链接】sd-ppp A Photoshop AI plugin 项目地址: https://gitcode.com/gh_mirrors/sd/sd-ppp SD-PPP是一款革命性的Photoshop AI插件&#xff0c;它巧妙地将先进的AI绘图能力无缝集成到…

作者头像 李华
网站建设 2026/6/5 12:15:52

2026年五款主流AI视频转文字工具深度横评:谁才是真正的“全能王“?

在网课笔记整理、自媒体二创、企业会议纪要、人物访谈记录等需求井喷的当下&#xff0c;AI视频转文字工具已成为内容创作者和职场人的刚需。然而&#xff0c;市面上工具良莠不齐——人声分不清、杂音误识别、专业术语出错、语义错乱等问题层出不穷。本文基于实测数据&#xff0…

作者头像 李华
网站建设 2026/6/5 12:11:13

不想 ZUI 越更越难用?手把手教你向官方提交功能建议与 BUG 反馈

不少拯救者手机用户长期使用 ZUI 系统&#xff0c;日常使用中总会萌生各类优化想法&#xff1a;想要新增快捷小部件、优化游戏领域弹窗逻辑、完善深浅模式自定义&#xff0c;或是遇到系统卡顿、APP 兼容异常等隐性 BUG。很多人习惯在社交平台、评论区吐槽系统短板&#xff0c;但…

作者头像 李华
网站建设 2026/6/5 12:10:08

别再只聊大模型了,AI的“基建”才是未来的关键

网罗开发&#xff08;小红书、快手、视频号同名&#xff09;大家好&#xff0c;我是 展菲&#xff0c;目前在上市企业从事人工智能项目研发管理工作&#xff0c;平时热衷于分享各种编程领域的软硬技能知识以及前沿技术&#xff0c;包括iOS、前端、Harmony OS、Java、Python等方…

作者头像 李华
网站建设 2026/6/5 12:09:14

程控交换机电脑话务员技术解析:从DTMF到Asterisk实现

1. 项目概述&#xff1a;从一句提示音到背后的通信系统“你好&#xff0c;欢迎致电我公司&#xff0c;请拨分机号&#xff0c;查号请拨0。”——相信很多朋友在拨打企业电话时&#xff0c;都听过这句熟悉而标准的提示音。对于普通用户而言&#xff0c;这只是一段引导语音&#…

作者头像 李华