关闭

C - The C Answer (2nd Edition) - Exercise 1-21

标签: Exercise 1-21
1034人阅读 评论(0) 收藏 举报
分类:
/* Write the program entab that replaces strings of blanks by the minimum 
   number of tabs and blanks to achieve the same spacing. Use the same tab 
   stops as for detab. When either a tab or a single blank would suffice to  
   reach a tab stop, which should be given preference? */

#include <stdio.h>

#define TABINC 8        /* tab increment size */

/* replace strings of blanks with tabs and blanks */
main()
{
	int c, nb, nt, pos;
	nb = 0;             /* # of blanks necessary */
	nt = 0;             /* # of tabs necessary */
	for(pos = 1; (c = getchar()) != EOF; ++pos)
	{
		if(c == ' ')
		{
			if(pos % TABINC != 0)
			{
				++nb;   /* increment # of blanks */
			}
			else
			{
				nb = 0; /* reset # of blanks */
				++nt;   /* one more tab */
			}
		}
		else
		{
			for(; nt > 0; --nt)
			{
				putchar('\t'); /* output tab(s) */
			}
			if(c == '\t')      /* forget the blank(s) */
			{
				nb = 0;
			}
			else               /* output blank(s) */
			{
				for(; nb > 0; --nb)
				{
					putchar(' ');
				}
			}
			putchar(c);
			if(c == '\n')
			{
				pos = 0;
			}
			else if(c == '\t')
			{
				pos = pos + (TABINC - (pos - 1) % TABINC) - 1;
			}
		}
	}
}
1
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

新手 Python-机器学习 四部曲资源汇总

[翻译]新手 Python-机器学习 四部曲资源汇总 原文:http://www.jianshu.com/p/9bb0bd8597a0 翻译:Four steps to maste...
  • xiangyong58
  • xiangyong58
  • 2016-06-03 21:54
  • 4168

MIT 6.828 学习笔记3 Lab1实验报告

Lab1实验报告Exercise 31. At what point does the processor start executing 32-bit code? What exactly caus...
  • scnu20142005027
  • scnu20142005027
  • 2016-04-27 20:25
  • 3430

Github上的1000多本免费电子书重磅来袭!

这个GIthub库的免费电子书资源绝对值得你拥有,赶紧收藏吧! 以前 StackOverFlow 也给出了一个免费电子书列表,现在在Github上可以看到时刻保持更新的列表了。 瞥一眼下面的书籍分类目...
  • napoleonjk
  • napoleonjk
  • 2014-08-11 14:31
  • 11866

[含随书源码]21st Century C 2nd Edition(C程序设计新思维 )

  • 2017-09-30 00:20
  • 4.48MB
  • 下载

21世纪C语言教程(21st Century C, 2nd Edition)-2015年英文原版,0积分

  • 2016-12-06 11:21
  • 5.50MB
  • 下载

21st Century C(2nd) 无水印pdf

  • 2017-09-21 18:22
  • 4.55MB
  • 下载

c primer plus 4th edition Programing Exercises answer(chapter 6)

c primer plus 第四版课后习题答案 chapter 6 Write a program that creates an array with 26 elements and stor...
  • qq467215628
  • qq467215628
  • 2017-03-10 07:27
  • 148

Unix Network Programming Volume 1 Compile issue solution for the 2nd and 3rd edition

Unix Network ProgrammingVolume 1: The Sockets Networking API.Compile issue solution for the 2nd and ...
  • carlshen
  • carlshen
  • 2011-04-09 22:05
  • 2483

[tcpl2] Answer to Exercise 1-17

Answer to Exercise 1-17, "The C Programming Language", 2nd edition, Kernighan and Ritchie I fou...
  • Dooit
  • Dooit
  • 2012-02-23 18:02
  • 320

JUnit in Action 2nd Edition 第三章 精通Junit(1)

第三章 精通JUnit 到目前为止,我们做了JUnit综述和演示如何使用(第一章)。我们也看到了JUnit内部的核心类和方法,它们如何同其它的交互(第二章)。 我们现在通过介绍实实在在的组件和测试...
  • yxtx520
  • yxtx520
  • 2014-11-05 10:28
  • 340
    个人资料
    • 访问:4351599次
    • 积分:116066
    • 等级:
    • 排名:第7名
    • 原创:451篇
    • 转载:22篇
    • 译文:0篇
    • 评论:72条
    最新评论