■ スペース → タブ変換
/*
* sp2tab.c : スペース → タブ変換
*
* Copyright (c) 2001 AOK.
*
* 2001/10/07 - 初版
*
* 使い方: [入力] 標準入力 [出力] 標準出力
*
* 例 : SP2TAB < in.txt > out.txt
*
* C言語等のプログラムソースに使用すると文字定数や文字列定数内
* のスペースもタブに変換されてしまうので注意して下さい。
*
*/
#include <stdio.h>
const int tabw = 4; /* タブ幅 */
int main()
{
int c, col = 0, spc = 0;
while ((c = getchar()) != EOF)
{
col++;
switch ((char)c)
{
case ' ':
spc++;
if (col % tabw == 0)
{
putchar('\t');
spc = col = 0;
}
break;
case '\t':
case '\n':
spc = col = 0;
putchar((char)c);
break;
default:
while (spc-- > 0) putchar(' ');
putchar((char)c);
spc = 0;
break;
}
}
return 0;
}