在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、输入字符串。

  之前学习了使用“scanf("%s")”输入字符串,但却不能在本题中使用它,因为它碰到空格或者TAB就会停下来。虽然下次调用时会输入下一个字符串,可是不知道两次输入的字符串中间有多少个空格、TAB甚至换行符。

  可以用下述两种方法解决这个问题:

  ①使用“fgetc(fin)”,它读取一个打开的文件fin,读取一个字符,然后返回一 个int值。如果文件结束,fgetc将返回一个特殊标记 EOF,这样可以判断是否输入结束。如果要从标准输入读取一个字符,可以用getchar,它等价于fgetc(stdin)。注意:在使用fgetc和getchar时,应该避免写出和操作系统相关的程序。

  ②使用“fgets(buf, maxn, fin)”读取完整的一行,其中buf的声明为char buf[maxn]。这个函数读取不超过maxn-1个字符,然后在末尾添上结束符“\0”,因此不会出现越界的情况。之所以说可以用这个函数读取完整的一行,是因为一旦读到回车符“\n”,读取 工作将会停止,而这个“\n”也会是buf字符串中最后一个有效字符(再往后就是字符串结束 符“\0”了)。只有在一种情况下,buf不会以“\n”结尾:读到文件结束符,并且文件的最后一 个不是以“\n”结尾。即:除了在文件结束前没有遇到“\n”这种特殊情况外,buf总是 以“\n”结尾。当一个字符都没有读到时,fgets返回NULL。

2、判断左右分号。

  用一个标识变量q来判断。

#include<cstdio>
using namespace std;
int main(){
int c,q=;
while((c=getchar()) != EOF){
if(c=='"'){
printf("%s",q?"``":"''");
q=!q;
}
else printf("%c",c);
}
return ;
}

注意:①(c=getchar()) !=    EOF   ②三目运算符

最新文章

  1. 页面Button/Link 传参数
  2. 打包java项目为可执行程序(exe)
  3. Atitit 马尔可夫过程(Markov process)&#160;hmm隐马尔科夫。&#160;马尔可夫链,的原理attilax总结
  4. windows重新获取IP
  5. [MFC] 向文本编辑框写入数据与从其中读取数据
  6. 配置sql server 2000以允许远程访问 及 连接中的四个最常见错误
  7. FastSocket学习笔记~制定自已的传输协议
  8. centos vpn client set
  9. css3 2D变换 transform
  10. Nginx Upload Module 上传模块
  11. 性能调优案例分享:jvm crash的原因 2
  12. BZOJ 3566: [SHOI2014]概率充电器 [树形DP 概率]
  13. 有关centos7 图形化root用户登录
  14. Beta冲刺——第二天
  15. [转]The superclass &quot;javax.servlet.http.HttpServlet&quot; was not found on the Java Build Path
  16. 更改配置:远程访问gitlab的postgresql数据库
  17. Kattis之旅——Rational Arithmetic
  18. js中基本事件的总结,onclick、onblur、onchange等
  19. 20155216 Exp7 网络欺诈技术防范
  20. UI5-文档-4.18-Icons

热门文章

  1. css3中 弹性盒模型布局之box-flex
  2. Smobiler实现列表展示—GridView(开发日志十二)
  3. compact处理流程分析
  4. Android实战简易教程-第二十四枪(基于Baas的用户表查询功能实现!)
  5. Windowns 无法启动 Office Software Protection Platform 服务,系统找不到指定的文件
  6. (Go)08.time示例
  7. Anagram Groups(字符串)
  8. codevs2594解药还是毒药(状压dp)
  9. Spring Boot 打 war 包的步骤
  10. 模拟Queue(wait/notify)