标签:难点 stdin stdio.h 控制 while 引号 main 简单 想法
在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*.
// 其实原版中文是让变成 ‘‘To be or not to be ,”quoth the Bard,‘‘that is the question".
// 猛然看去好像变化没有什么,其实就是双引号的变化,而两种双引号在一些显示里是很不明显的。所以,我就用+ 和 * 两个比较明显些的符号代替一下。
#include<stdio.h> int main(){ int c,q = 1; while((c=getchar())!=EOF){ if(c==‘"‘){ printf("%s",q?"+":"*"); q=!q; } else printf("%c",c); }
fflush(stdin); return 0; }
首先呢,问题是挺简单的,我所以要摘录下来,是感觉这些细节问题确确实实是我们平常要学习的,以小见大,逐渐提升自己敲出的代码的质量。
最简单的,如果想要不停的输入
while((c=getchar())!=EOF)
这行代码无疑是一个很好的参考的例子。干净利落。(使用这个时候,最好在末尾加上fflush(stdin);,然后结束时Ctrl+Z,然后回车即可)
随着我们写出越来越多的代码后,就会发现用个布尔值控制其代码的流向的办法是多么的优雅,自然
printf("%s",q?"+":"*"); q=!q;
这里的控制也真的挺棒的。
关于布尔值的使用,确实不是什么难点,不过我确实在平常的使用过程中不是很熟练,还是没有这么个想法去使用,不过,还是不用怀疑,这个东西真的很好用
标签:难点 stdin stdio.h 控制 while 引号 main 简单 想法
原文地址:http://www.cnblogs.com/zhangzimu/p/6204589.html