您的位置:首页 > 其它

练习1-10 编写一个将输入复制到输出的的程序,并将其中的制表符替换成\t,把回退符替换成\b,把反斜杠\替换成\\,这样可以将制表符和回退符以可见的方式显示出来。

2017-08-17 18:41 218 查看
/*
时间:2017/8/2
地点:工程北629
功能:将制表符、单个反斜杠、回退符,以可见的方式显示出来
思想:使用标志位。使用getchar、putchar函数

说明:关于回退符的输入,还没有更好的方法?
*/

#include <stdio.h>

int main()
{
int c, d;

while ( (c=getchar()) != EOF)
{
d = 0;	 //必须设置标志位,d=0表示直接原样打印输出
if (c == '\\') {	//检测到输入中有1个反斜杠\,此处写法c =='\\'是正确的。
putchar('\\');
putchar('\\');
d = 1;
}
if (c == '\t') {	//检测到输入中有一个隐式的制表符
putchar('\\');
putchar('t');
d = 1;	        //将标志位置1,防止输出\t后,继续输出1个隐式的制表符形式
}
if (c == '\b') {	//注:检测到有一个回退符。没有搞清楚如何输入??
putchar('\\');
putchar('b');
d = 1;
}
if (d == 0)		//如果输入中不含有上述三种符号,直接原样打印输出。
putchar(c);
}
return 0;
}
/*
在Vc++6.0中的输出结果是:
----------------------------
ni      ni      ni
ni\tni\tni

ni\ni\ni
ni\\ni\\ni

ni\\ni\\ni
ni\\\\ni\\\\ni

ni\bni\bni
ni\\bni\\bni

ni      \b      ni      ni\ni\\ni\bni
ni\t\\b\tni\tni\\ni\\\\ni\\bni
^Z
Press any key to continue

//假如将第2个if语句中的d=1注释掉,那么将会导致下面的错误输出。
ni      ni      ni
ni\t    ni\t    ni
^Z
Press any key to continue
----------------------------
总结:注意标志位的使用。关于标志位的使用,可参考练习1-8、练习1-9加以巩固。
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C程序设计语言
相关文章推荐