3-1例题tex中的引号
在TeX中,左双引号是“"”,右双引号是“"”,输入一篇包含双引号的文章你的任务是把它转换成tex的格式
样例输入:
“you are smart,”
样例输出
“you are smart,”
- 使用fgetc(fin)可以打开的文件fin中读取一个字符。一般情况下应当在检查它不是EOF后再将其转换成char值。从标准输入读取一个字符可以用getchar,它等价于fgetc(stdin)
- 如果用scanf("%d",&n)读取整数,则要是在输入123多加了一个空格,getchar读取的将是这一个空格,如果在123之后紧跟着换行则读取到将是回车符“\n"
- 在使用fgetc和getchar时应避免写出和操作系统相关的程序
- fgets(buf,maxn,fin)将读取完整的一行放在字符数组buf种。应当保证buf足够存放下文件的一行内容。除了在文件结束前没有遇到”\n“这种特殊情况外,buf总是以”\n“结尾。当一个字符都没有读到时,fgets返回null。
- gets(s),没有指明读取的最大字符数。这里就出现了一个潜在的问题gets将不停地往s种存储内容,而不管是否存储得下
- C语言并不禁止程序读写"非法内存"
- C语言种的gets(s)存在缓冲区溢出漏洞,不推荐使用。在C11标准里,该函数已被正是删除。
//本题的特点是可以边读边处理,而不需要把输入字符串完整地存下来
#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;
}