テキスト描画機能を実装したいのですが、どのよう\t
に動作するのかよくわかりません。つまり、 にいくつのスペースを印刷すればよいのかわかりません\t
。
私は次のアルゴリズムを思いつきました:
a) それぞれは\t
最大NUMBER_OF_SPACES_FOR_TAB
スペースを表します。b) が\t
最後の行の対応する位置に現れる場合、この行は最後の行\t
の に揃えられる必要があります。\t
例:
printf("a\t\tb\n");
printf("\t\tc\n");
次のように印刷されます:
a11112222b
34444c
どこ:
1.数字は位置i
のスペースを表します\t
i
2.NUMBER_OF_SPACES_FOR_TAB == 4
標準的なアルゴリズムを知っている人はいますか? よろしくお願いします。
ベストアンサー1
タブ文字は次の文字に進みますタブストップ歴史的にはタブ ストップは 8 文字ごとでしたが、今日ではより小さい値が一般的に使用されており、ほとんどのエディターで設定できます。
出力は次のようになると予想されます。
123456789
a b
c
アルゴリズムは、列数をゼロから開始し、各文字を出力するごとに増加します。タブに到達すると、n-(c%n)
スペースを出力します。ここで、c
は列番号 (ゼロベース) で、n
はタブ間隔です。