TeX中的引号

#include <stdio.h>
#include <math.h>
// 算法竞赛的目标是编程对任意输入均得到正确的结果。
// 请先独立完成,如果有困难可以翻阅本书代码仓库中的答案,但一定要再次独立完成。
// “抓住主要矛盾”——始终把学习、实验的焦点集中在最有趣的部分。如果直观地解决方案行得通,就不必追究其背后的原理。
// 编程不是看书看会的,也不是听课听会的,而是练会的。

/**
【题目】TeX中的引号
在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''.
*/


/**
【分析】如何判断一个双引号是左双引号还是右双引号。使用getchar进行输入字符。
*/

int main()
{
    int c,q=1; // q来标识第一个
    while ( (c = getchar()) != EOF ) {
        if (c == '"') {
            printf("%s",q?"``":"''");
            q = !q;
        } else {
            printf("%c",c);
        }

    }
    return 0;
}

// 使用scanf("%s",&s);函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理。
// getchar有一个int型的返回值。当程序调用getchar时。程序就等着用户按键。用户输入的字符被存放在键盘缓冲区中。直到用户按回车为止(回车字符也放在缓冲区中)。

posted @ 2018-03-13 15:14  TBHacker  阅读(1010)  评论(0编辑  收藏  举报