TEX Quotes(UVA 272)

题目标签:点这里

懒人题干

给你一文本,将其中奇数个 " 替换为 `` (两个`),偶数个 " 替换为 '' (两个')。

Description

TEX是由Donald Knuth开发的一种排版语言。它将源文本与一些排版指令结合在一起,希望能产生一个漂亮的文件。排版好看文件使用 “ 和 “ 来限定引号,而不是使用大多数键盘提供的无聊的 " 来限定。键盘通常没有 有向双引号,但它们有一个左单引号 ` 和一个右单引号 ' 。现在来检查你的键盘,找出左单引号键 `(有时称为 "反引号键" )和右单引号键 '(有时称为 "撇号" 或只是 "引号" )。注意不要把左单引号 ` 和 "反斜杠" 键 / 混淆。TEX允许用户输入两个左单引号 ` 来创建一个左双引号 ",两个右单引号 '' 来创建一个右双引号 "。然而,大多数打字员都习惯于用不定向的双引号 "" 来限定他们的引号。如果源句子是 "To be or not to be," quoth the bard, "that is the question." 那么TEX产生的排版文件就不会包含所需的形式:“To be or not to be,” quoth the bard, “that is the question.” 写一个程序,将含有双引号(")字符转换为被TEX所要求的双字符序列取代以外的相同文本。 除了双引号被TEX所要求的两个字符序列所取代外,其他的都是相同的。如果""打开一个引号,双引号(")字符应该被适当地替换为``,如果""关闭一个引号,则替换为''。注意,嵌套引号的问题不会出现。第一个 "必须用``替换,下一个用'',下一个用``,下一个用'',下一个用``,下一个用'',依此类推。

输入

输入将由几行包含偶数双引号(")字符的文本组成。 输入将以文件结束符结束。

输出

文本的输出必须与输入时完全一致,除了。 - 每一对中的第一个""被两个`字符取代。``和 - 每一对中的第二个""被两个""字符所取代:"'。

输入样例

输入样例copy
"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!"

输出样例

输出样例copy
``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
using namespace std;

int main() {
	char ch;
	int sign=1;
	while((ch=getchar())!=EOF)
	{
		if(ch=='"') //是双引号
		{
			if(sign) //前引号
				printf("``");
			else
				printf("''");
			sign=!sign;
		}
		else
			printf("%c",ch);
	}
}

 

你可能感兴趣的:(#oj题解,UVA的题目,c++,算法)