K&R 练习题 【每日一题】1-20

本文分享了K&R编程书籍中的练习题,建议先理解语法再进行练习。讨论了第21题——如何用适当数量的空格替换输入中的制表符,以保持整齐的列对齐。并鼓励读者在遇到困难时查看答案,思考多种解题方法。
摘要由CSDN通过智能技术生成

K&R的练习题偏难,但是个个题都是精华,建议先不管练习题,通读几遍,先记住基本的语法,再进行练习,练习时候如果感觉有难度,也可以先看答案,不过,一个题往往有多种解法,看完一种再自己思索下。

K&R 练习题 1-21

//write a program detab that replaces tabs in the input with the proper number of blanks to space to the next tab stop. Assume a fixed set of tab stops. say very n columns.

这个题目的意思,其实是自己定义tab的大小,并让字符按照定义tab的大小排列,比如输入 ab\tb\t, 如果定义tab为5, 则输出ab---b----,都整齐的按照tab定义大小排列。

小时候做数学题,不管会不会解,都要大大的写上一个解字有木有。恩。。。

解:

#include <stdio.h>

#define TABSIZE 10   // 定义一个tab为10个size
#define MAX_BUFFER 1000
#define SPACE '-' //为了显示方便,这里用‘-’ 代替空格‘ ’

int CaculatorTabLength(int l, int tabsize) //计算组成一个tab缺少的SPACE个数
{
   return(tabsize - l%tabsize); //这儿取余数是这个算法的核心,耐心瞅瞅o(∩∩)o..
}

int mgetline(char s[], int lim)
{ 
   int c, i;
   for(i = 0; i < lim-
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值