K&Rを読もう(13) 演習 1-20 tabをスペースに変換。
演習 1-20
tabをスペースに変換する問題。
タブをスペースに変換しても見えないので>----とVimっぽくしてみる。
#include <stdio.h> #include <stdlib.h> int main(void) { int c; while ((c = getchar()) != EOF) { if (c == '\t') printf(">-------"); else putchar(c); } exit(EXIT_SUCCESS); }
うぅん。ステキ。
実行結果
% ./ex-1-20 < ex-1-20.c #include <stdio.h> #include <stdlib.h> int main(void) { >-------int c; >-------while ((c = getchar()) != EOF) { >------->-------if (c == '\t') >------->------->-------printf(">-------"); >------->-------else >------->------->-------putchar(c); >-------} >-------exit(EXIT_SUCCESS); }
うっはVimっぺぇ!!
色つき
これだけじゃ面白くないので、tabに色を付けたいと思います。
#include <stdio.h> #include <stdlib.h> int main(void) { int c; while ((c = getchar()) != EOF) { if (c == '\t') printf("\033[1;30m>-------\033[0m"); else putchar(c); } exit(EXIT_SUCCESS); }
グレーで色が付きます。うっはVimっぺぇ!!
参考
- エスケープシーケンスについて
- かなり便利。
- Bash Prompt HOWTO: ANSI エスケープシーケンス: 色とカーソル操作
- \[ \]は省略可能?エスケープシーケンス\[は\1でいける。\]はなんだかわからん。
エディタ作りたくなりますねぇ。