1-20 detab.c
記号パラメータとはなんぞや? たぶん#defineで作る定数のことだろうけど。
お前、1.1.4では記号定数て言ってるじゃねーかよー >K&R
1章の問題でprintfの書式の*使うかどうか迷ったけど、結局使いました。
書くまでも無い簡単なループで置き換えられるからいいかなと。
/* * P42 演習1-20 * 入力されたタブを、次のタブ・ストップまでのスペースを * うめる適当な数のブランク(空白)で置き換えるプログラム * detabを書け。タブ・ストップの位置は、例えばn文字という * ように固定して考えよ。nは変数にすべきか、記号パラメータ * にすべきか? * * * 2007/06/11 arikui * */ #include <stdio.h> int main(void){ int n = 4; /* tab stop */ int c, tab, col = 0; while((c = getchar()) != EOF){ if (c == '\t'){ tab = n - col % n; col += tab; printf("%*s", tab, ""); }else{ ++col; if (c == '\n') col = 0; putchar(c); } } return 0; }