TeX中的引号(Tex Quotes, UVa 272)
在TeX中,左双引号是“``”,右双引号是“''”。输入一篇包含双引号的文章,你的任务是 把它转换成TeX的格式。
样例输入: "To be or not to be," quoth the Bard, "that is the question".
样例输出: ``To be or not to be,'' quoth the Bard, ``that is the question''.
本题的关键有两个:输入字符串和判断左右括号。
1、输入字符串。
之前学习了使用“scanf("%s")”输入字符串,但却不能在本题中使用它,因为它碰到空格或者TAB就会停下来。虽然下次调用时会输入下一个字符串,可是不知道两次输入的字符串中间有多少个空格、TAB甚至换行符。
可以用下述两种方法解决这个问题:
①使用“fgetc(fin)”,它读取一个打开的文件fin,读取一个字符,然后返回一 个int值。如果文件结束,fgetc将返回一个特殊标记 EOF,这样可以判断是否输入结束。如果要从标准输入读取一个字符,可以用getchar,它等价于fgetc(stdin)。注意:在使用fgetc和getchar时,应该避免写出和操作系统相关的程序。
②使用“fgets(buf, maxn, fin)”读取完整的一行,其中buf的声明为char buf[maxn]。这个函数读取不超过maxn-1个字符,然后在末尾添上结束符“\0”,因此不会出现越界的情况。之所以说可以用这个函数读取完整的一行,是因为一旦读到回车符“\n”,读取 工作将会停止,而这个“\n”也会是buf字符串中最后一个有效字符(再往后就是字符串结束 符“\0”了)。只有在一种情况下,buf不会以“\n”结尾:读到文件结束符,并且文件的最后一 个不是以“\n”结尾。即:除了在文件结束前没有遇到“\n”这种特殊情况外,buf总是 以“\n”结尾。当一个字符都没有读到时,fgets返回NULL。
2、判断左右分号。
用一个标识变量q来判断。
#include<cstdio>
using namespace std;
int main(){
int c,q=;
while((c=getchar()) != EOF){
if(c=='"'){
printf("%s",q?"``":"''");
q=!q;
}
else printf("%c",c);
}
return ;
}
注意:①(c=getchar()) != EOF ②三目运算符
TeX中的引号(Tex Quotes, UVa 272)的更多相关文章
- uva 272 Tex中的引号(Tex Quotes)
TeX is a typesetting language developed by Donald Knuth. It takes source text together with a few ty ...
- TeX中的引号
#include <stdio.h> #include <math.h> // 算法竞赛的目标是编程对任意输入均得到正确的结果. // 请先独立完成,如果有困难可以翻阅本书代码 ...
- Tex中的引号(JAVA语言)
package 第三章; import java.util.Scanner; public class Tex中的引号 { public static void main(String[] args) ...
- 例题3_1 TeX中的引号(TeX Quotes,UVa 272)
在TeX中,左双引号是“``”,右双引号是“''”.输入一篇包含双引号的文章,你的任务是把它转换成TeX的格式. 样例输入: "To be or not to be,"quoth ...
- TeX中的引号(UVa272)
问题: 在Tex中,做双引号的" `` ",右双引号是" '' "(两个回车左边的).输入一篇包含双引号的文章,你的任务是把它转换成TeX的格式. 样例输入: ...
- 【OI】Tex Quotes——UVa 272
题目: TEX is a typesetting language developed by Donald Knuth. It takes source text together with a fe ...
- 算法竞赛入门经典第二版 TeX中的引号 P47
#include<bits/stdc++.h> using namespace std; int main(){ ; while( (c = getchar()) !=EOF) //get ...
- UVa 272 Tex Quotes --- 水题
题目大意:在TeX中,左引号是 ``,右引号是 ''.输入一篇包含双引号的文章,你的任务是把他转成TeX的格式 解题思路:水题,定义一个变量标记是左引号还是右引号即可 /* UVa 272 Tex Q ...
- include包含头文件的语句中,双引号和尖括号的区别是什么?
include包含头文件的语句中,双引号和尖括号的区别是什么? #include <> 格式:引用标准库头文件,编译器从标准库目录开始搜索 尖括号表示只在系统默认目录或者括号内的路径查找 ...
随机推荐
- CF #327 DIV2 D、E
两题都不难. 对于D题,可以使用相对移动,把吹aircraft移动变成相反方向的待援点的移动.假设此时时间为t,把aircraft的速度设为Vmax,看待援点在飞船最大速度飞行t秒的范围内,注意风向变 ...
- HDU 3666
此题不难,不等式很空易就列出来了,只是要把它转化成减法形式..卡在这了... 其实取一个log对数就好了...要记住这个技巧.用基于dfs的spfa.. #include<iostream> ...
- 使用Hive的正则解析器RegexSerDe分析nginx日志
1.环境: hadoop-2.6.0 + apache-hive-1.2.0-bin 2.使用Hive分析nginx日志,站点的訪问日志部分内容为: cat /home/hadoop/hivetest ...
- 四大传值详解:属性传值,单例传值,代理传值,block传值
一:属性传值 传值情景:从前一个页面向后一个页面传值 a.在后一个页面,根据传值类型和个数,写属性 b.在前一个页面, 为属性赋值 c.在后一个页面, 使用值 例如: 第一个视图: #import & ...
- 大数据处理之道(实验方法<二>)
一:交叉验证(crossvalidation)(附实验的三种方法)方法简单介绍 (1) 定义:交叉验证(Cross-validation)主要用于建模应用中,比如PCR(Principal Com ...
- Linux系统编程——特殊进程之僵尸进程
僵尸进程(Zombie Process) 进程已执行结束,但进程的占用的资源未被回收.这种进程称为僵尸进程. 在每一个进程退出的时候,内核释放该进程全部的资源.包含打开的文件.占用的内存等. 可是仍然 ...
- jquery文件批量上传控件Uploadify3.2(java springMVC)
人比較懒 有用为主 不怎么排版了 先放上Uploadify的官网链接:http://www.uploadify.com/ -->里面能够看到PHP的演示样例,属性说明,以及控件下载地址.分f ...
- 使用匿名类型做为ComboBox的DataSource
使用匿名类型做为ComboBox的DataSource ArrayList list = new ArrayList(); list.Add(new { id = " ...
- android 从assets和res中读取文件(转)
1. 相关文件夹介绍 在Android项目文件夹里面,主要的资源文件是放在res文件夹里面的.assets文件夹是存放不进行编译加工的原生文件,即该文件夹里面的文件不会像xml,java文件 ...
- 如何让 vue 在 sublime 中变成彩色的
在 sublime 中编辑 vue 时,导入后是纯白色的文本,如下图: 想让其变成彩色的文本,需要安装插件,步骤如下: 1. 按住:Ctrl + Alt + P 2. 输入:install Packa ...