算法竞赛入门经典 例题3-1 TeX中的引号

算法竞赛入门经典 例题3-1 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''
关键:

  1. 怎么判断是左还是右双引号 联想一下那种行末不输出空格的题, 使用标志变量
  2. 怎么输出带有空格的字符串
    scanf("%s",s) 碰到空格 或者TAB就会停下来
  • 使用fgetc(fin) 读取一个打开的文件fin,读取一个字符,然后返回一 个int值
    为什么返回的是int而不是char呢?因为如果文件结束,fgetc将返回一个特殊标记 EOF,它并不是一个char。如果把fgetc(fin)的返回值强制转换为char,将无法把特殊的EOF和 普通字符区分开。
  • 如果要从标准输入读取一个字符,可以用getchar,它等价于fgetc(stdin)。
    使用fgetc(fin)可以从打开的文件fin中读取一个字符。一般情况下应当在检 查它不是EOF后再将其转换成char值
    "fgets(buf, maxn, fin)"将读取完整的一行放在字符数组buf中。应当保证 buf足够存放下文件的一行内容。
    getchar() 返回类型 int
#include<iostream>
using namespace std;
int main()
{
	int c,q=1;
	//getchar()返回类型 int 
	while((c=getchar())!=EOF)
	{
		if(c=='"') //隐式转换 
		{
			cout<<(q?"``":"''");
			q=!q;
		}
		else cout<<(char)c;
	} 
	return 0;
}
原文地址:https://www.cnblogs.com/serendipity-my/p/12635478.html