`
hellobin
  • 浏览: 62921 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

UVA 272 - TEX Quotes

    博客分类:
  • UVA
 
阅读更多

 

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 `` and " 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.

 

Input and Output

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. 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!''

 

 

 

#define RUN
#ifdef RUN


#include <stdio.h>
int main() {
  int c, q = 1;

  while((c= getchar()) != EOF) {
    if(c == '"') {
		printf("%s", q ? "``" : "''");
		q = !q;
    }
    else
		printf("%c", c);
  }
  return 0;
}


#endif



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics