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

/*
	时间:2017/8/2
	地点:工程北629
	功能:将制表符、单个反斜杠、回退符,以可见的方式显示出来
	思想:使用标志位。使用getchar、putchar函数
	
	说明:关于回退符的输入,还没有更好的方法?
*/

#include 

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程序设计语言R&H》)