标题:[讨论]此程序是否有错?
只看楼主
yangzhifu
Rank: 1
等 级:新手上路
威 望:2
帖 子:433
专家分:0
注 册:2007-4-11
 问题点数:0 回复次数:4 
[讨论]此程序是否有错?

目的:
将空格串替换为最少的制表符和空格,但要保持单词之间的空格不变!
代码:
#include<stdio.h>
#define TABINC 8
void 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!=c)
++nb;//increment of blanks
else
{
nb=0;//reset of blanks
++nt;//one more tab
}
}

else
{
for(;nt>0;--nt)
putchar('\t');//output tabs
if(c=='\t');//forget the blanks
nb=0;
else //output blanks
for(;nb>0;--nb)
putchar(' ');
putchar(c);
if(c=='\n')
pos=0;
else if(c=='\t')
pos=pos+(TABINC-(pos-1)%TABINC)-1;
}
}

搜索更多相关主题的帖子: 单词 necessary include 制表符 
2007-09-25 17:06
yangzhifu
Rank: 1
等 级:新手上路
威 望:2
帖 子:433
专家分:0
注 册:2007-4-11
得分:0 


方寸之内,剖天下; 方坛之内,析自我;
2007-09-25 17:07
栖柏
Rank: 2
等 级:论坛游民
威 望:3
帖 子:1103
专家分:17
注 册:2007-8-23
得分:0 
以下是引用yangzhifu在2007-9-25 17:06:52的发言:

目的:
将空格串替换为最少的制表符和空格,但要保持单词之间的空格不变!
代码:
#include<stdio.h>
#define TABINC 8
void 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!=c)
++nb;//increment of blanks
else
{
nb=0;//reset of blanks
++nt;//one more tab
}
}

else
{
for(;nt>0;--nt)
putchar('\t');//output tabs
if(c=='\t');//forget the blanks这里要这个;么?如果要,下面的else没有匹配的了……
nb=0;
else //output blanks
for(;nb>0;--nb)
putchar(' ');
putchar(c);
if(c=='\n')
pos=0;
else if(c=='\t')
pos=pos+(TABINC-(pos-1)%TABINC)-1;
}
}


You have lots more to work on! Never give up!c language!
2007-09-25 18:05
yangzhifu
Rank: 1
等 级:新手上路
威 望:2
帖 子:433
专家分:0
注 册:2007-4-11
得分:0 
当然要了!匹配啊!

方寸之内,剖天下; 方坛之内,析自我;
2007-09-25 22:37
ttaix
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-7-28
得分:0 
嘴硬 哈哈
2007-09-26 00:39



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-172815-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019395 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved