この質問はK&Rの演習1.9にあります。私は次のコードを書きました:
#include<stdio.h>
main()
{
int c,i=0,n=0;
while((c=getchar())!=EOF)
{
if(c!=' '||c!='\t')
{
i=0;
putchar(c);
}
else if(c==' '||c=='\t')
{
i++
}
if((c+1)!=' '||(c+1)!='\t')
n=i;
if(n!=0)
{
c=' ';
putchar(c);
}
}
}
しかし、私は望ましい出力を得ることができませんでした。私はubuntuでgccを使用しています。入力のようなものhello\t\ta
を入力すると、出力は次のようになります。hello\_\_a
つまり、タブの数がスペースの数に置き換えられ、入力するとhello\_\_a
、出力は入力と同じになります。
それを手伝ってくれるか、希望の出力を得るために何か新しいことを提案してください。