TEX Quotes(字符串,水)
2024-10-18 03:58:58
TEX Quotes
Time Limit: 1000MS | Memory Limit: 10000K | |
Total Submissions: 9674 | Accepted: 5073 |
Description
TEX is a typesetting language developed by Donald Knuth. It takes source text together with a few typesetting instructions and produces, one hopes, a beautiful document. Beautiful documents use double-left-quote and double-right-quote to delimit quotations, rather than the mundane " which is what is provided by most keyboards. Keyboards typically do not have an oriented double-quote, but they do have a left-single-quote ` and a right-single-quote '. Check your keyboard now to locate the left-single-quote key ` (sometimes called the "backquote key") and the right-single-quote key ' (sometimes called the "apostrophe" or just "quote"). Be careful not to confuse the left-single-quote ` with the "backslash" key \. TEX lets the user type two left-single-quotes `` to create a left-double-quote and two right-single-quotes '' to create a right-double-quote. Most typists, however, are accustomed to delimiting their quotations with the un-oriented double-quote ".
If the source contained "To be or not to be," quoth the bard, "that is the question." then the typeset document produced by TEX would not contain the desired form: "To be or not to be," quoth the bard, "that is the question." In order to produce the desired form, the source file must contain the sequence: ``To be or not to be,'' quoth the bard, ``that is the question.'' You are to write a program which converts text containing double-quote (") characters into text that is identical except that double-quotes have been replaced by the two-character sequences required by TEX for delimiting quotations with oriented double-quotes. The double-quote (") characters should be replaced appropriately by either `` if the " opens a quotation and by '' if the " closes a quotation. Notice that the question of nested quotations does not arise: The first " must be replaced by ``, the next by '', the next by ``, the next by '', the next by ``, the next by '', and so on.
If the source contained "To be or not to be," quoth the bard, "that is the question." then the typeset document produced by TEX would not contain the desired form: "To be or not to be," quoth the bard, "that is the question." In order to produce the desired form, the source file must contain the sequence: ``To be or not to be,'' quoth the bard, ``that is the question.'' You are to write a program which converts text containing double-quote (") characters into text that is identical except that double-quotes have been replaced by the two-character sequences required by TEX for delimiting quotations with oriented double-quotes. The double-quote (") characters should be replaced appropriately by either `` if the " opens a quotation and by '' if the " closes a quotation. Notice that the question of nested quotations does not arise: The first " must be replaced by ``, the next by '', the next by ``, the next by '', the next by ``, the next by '', and so on.
Input
Input will consist of several lines of text containing an even number of double-quote (") characters. Input is ended with an end-of-file character.
Output
The text must be output exactly as it was input except that:
- the first " in each pair is replaced by two ` characters: `` and
- the second " in each pair is replaced by two ' characters: ''.
Sample Input
"To be or not to be," quoth the Bard, "that
is the question".
The programming contestant replied: "I must disagree.
To `C' or not to `C', that is The Question!"
Sample Output
``To be or not to be,'' quoth the Bard, ``that
is the question''.
The programming contestant replied: ``I must disagree.
To `C' or not to `C', that is The Question!''
题解:要输入一行再输出一行,这样比较好,另外"竟然是两个''无语,错了半天。。。。
代码:
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<vector>
#include<map>
#include<algorithm>
using namespace std;
#define mem(x,y) memset(x,y,sizeof(x))
#define SI(x) scanf("%d",&x)
#define SL(x) scanf("%lld",&x)
#define PI(x) printf("%d",x)
#define PL(x) printf("%lld",x)
#define P_ printf(" ")
#define T_T while(T--)
typedef long long LL;
const int INF=0x3f3f3f3f;
char s[1000010];
int main(){
int cnt=0;
while(gets(s)){
int len=strlen(s);
for(int k=0;k<len;k++){
if(s[k]=='"'){
cnt++;
if(cnt&1)printf("``");
else printf("''");
}
else printf("%c",s[k]);
}
printf("\n");
}
return 0;
}
最新文章
- 上四条只是我目前总结菜鸟们在学习FPGA时所最容易跑偏的地
- 【原创】C#通用权限管理-程序安全检查,这些你一定要考虑到位
- SharpGL学习笔记(十六) 多重纹理映射
- 如何在OneNote2013中粘贴高亮的代码
- MVC3+AutoFac实现程序集级别的依赖注入
- MEF 编程指南(五):延迟导出
- 安装universal-ctags
- 今天给大家分享一下Android中的资源与国际化的问题
- c++builder调用vc的dll
- c++容器使用总结(转载)
- 仿36氪(iOS版附源代码)
- bash之管线命令
- linux下定时执行任务的方法
- .NET基础之this关键字
- centos7上安装nagios
- Kalman滤波学习
- asdm不能登录问题;浏览器必须是ie,不能是chrome或者firefox;java的版本,尤其是安全等级和例外需要调整
- Fb,tw等emoji相关
- bzoj千题计划121:bzoj1033: [ZJOI2008]杀蚂蚁antbuster
- 单独配置secondarynamenode