首页 > 代码库 > Problem 001——Tex Quotes
Problem 001——Tex Quotes
Problem 001
TeXQuotes
TeX is a typesetting language developed by Donald Knuth. Ittakes source text together with a few typesetting instructions andproduces, 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 donot have an oriented double-quote, but they do have aleft-single-quote ` and a right-single-quote ‘.Check your keyboard now to locate the left-single-quote key` (sometimes called the ``backquote key") and theright-single-quote key ‘ (sometimes called the``apostrophe" or just ``quote"). Be careful not to confuse theleft-single-quote ` with the ``backslash" key\
. TeX lets the user type two left-single-quotes`` to create a left-double-quote `` and tworight-single-quotes ‘‘ to create a right-double-quote ‘‘.Most typists, however, are accustomed to delimiting theirquotations with the un-oriented double-quote ".
If the source contained
"To be or not to be," quoth the bard, "that is thequestion."
then the typeset document produced by TeX would not contain thedesired form:
``To be or not to be," quoth the bard, ``that is thequestion."
In order to produce the desired form, the source file mustcontain the sequence:
``To be or not to be,‘‘ quoth the bard, ``that is thequestion.‘‘
You are to write a program which converts text containingdouble-quote (") characters into text that is identicalexcept that double-quotes have been replaced by the two-charactersequences required by TeX for delimiting quotations with orienteddouble-quotes. The double-quote (") characters should bereplaced appropriately by either `` if the "opens a quotation and by ‘‘ if the " closes aquotation. Notice that the question of nested quotations does notarise: The first " must be replaced by ``, thenext by ‘‘, the next by ``, the next by‘‘, the next by ``, the next by ‘‘, andso on.
Input andOutput
Input will consist of several lines of text containing an evennumber of double-quote (") characters. Input is ended withan end-of-file character. The text must be output exactly as it wasinput except that:
- the first " in each pair is replaced by two `characters: `` and
- the second " in each pair is replaced by two‘ characters: ‘‘.
SampleInput
"To be or not to be," quoth the Bard, "thatis 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, ``thatis the question‘‘.The programming contestant replied: ``I must disagree.To `C‘ or not to `C‘, that is The Question!‘‘
CODE
#include
int main()
{
char a;
long int i=1;
while((a=getchar())!=EOF)
{
if(a==‘"‘&&i%2==1)
{
printf("``");
i++;
}
else if(a==‘"‘&&i%2==0)
{
printf("‘‘");
i++;
}
if(a!=‘"‘)
printf("%c",a);
}
return 0;
}
MY WAY
这个是第一个题,首先应该做的是用EOF,这个比较简单。程序最开始的难处是我不明白如何让让电脑获得这些输入,经过查书自学得知getchar的用法。getchar可以输入单个字符,让计算机读取。在程序的中间部分则是用来判断输入是否是引号,并且判断出是第几个引号,然后对应的输出题目所要求的符号。最后一定要加上return返回值。这样,这个题目一遍就获得了AC,这真是件令人欢欣鼓舞的事!
后来听好多人说这个题超级水,但是我想说,没有水的题目,只有水平烂的人。只有总这样的简单的题目开始,一步一个脚印的去做,一步一步的深入program,总有一天会懂得编程的真谛。
I‘m ACMer.I‘m on my way.
Problem 001——Tex Quotes