c语言编程折行怎么写,c语言折行

这篇博客介绍了如何使用C语言处理输入的文本,将遇到的制表符' '转换为空格,并展示了`exptab`、`findblnk`和`newpos`等关键函数的作用。通过`main`函数实现逐字符读取,展示了如何在达到最大列数时寻找并插入空白以保持格式一致。
摘要由CSDN通过智能技术生成

#include

#define MAXCOL 20

#define TABINC 8

char line[MAXCOL];

void printl(int pos);

int exptab(int pos);

int findblnk(int pos);

int newpos(int pos);

main()

{

int c,pos;

pos=0;

while((c=getchar()) != EOF){

line[pos]=c;

if (c==‘\t‘)

pos=exptab(pos);

else if(c==‘\n‘){

printl(pos);

pos=0;

}else if (++pos >= MAXCOL){

pos=findblnk(pos);

printl(pos);

pos=newpos(pos);

}

}

}

void printl(int pos)

{

int i;

for(i=0;i

putchar(line[i]);

if(pos>0)

putchar(‘\n‘);

}

int exptab(int pos)

{

line[pos]=‘ ‘;

for(++pos;pos

line[pos]=‘ ‘;

if(pos

return pos;

else{

printl(pos);

return 0;

}

}

int findblnk(int p)

{

while(p>0 && line[p]!=‘ ‘){

--p;

}

if(p==0)

return MAXCOL;

else{

return p+1;

}

}

int newpos(int pos)

{

int i,j;

if(pos<=0 || pos>=MAXCOL)

return 0;

else{

i=0;

for(j=pos;j

line[i]=line[j];

++i;

}

return i;

}

}

处理中tab都替换为空格

摘自k&r习题解答

原文:http://my.oschina.net/sukai/blog/311208

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值