プログラムの説明

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
研修生

プログラムの説明

#1

投稿記事 by 研修生 » 16年前

問題自体が複雑になって理解しずらいのでご質問します

入力されたタブを次のタブ・ストップまでのスペースをうめる適当な数のブランク(空白)で置き換える
プログラムdetabを書け。タブ・ストップの位置は例えばn文字ごとというように固定して考えよ
nは変数にすべきか、記号パラメータにすべきか?


という問題なのですが意味がよくわかりません。何がわからないの?と質問出るかと思いますが
結局実行結果がどんな風になればいいのかがわかれば作りやすいので教えて下さい。
後タブとタブ・ストップの違いがわかりません・・

御津凪

Re:プログラムの説明

#2

投稿記事 by 御津凪 » 16年前

(ブラウザでのタブ表現が8文字なら、以下のテキストは希望通りの表示ができているはずです)

まず、タブ(Tab)とは、キーボードの左側にある Tab キーを押すことで入力される文字です。
タブ・ストップは、文字で指定文字分の間隔ごとに右にずらし、揃える機能です。
(タブは英訳で Tab stop と呼ぶので、実質的には同義のはずです)
←空白1字
  ←空白2字
    ←空白4字
        ←空白8字
	←タブ1字
		←タブ2字
上記部分をそれぞれ選択してみると、タブの部分だけまとまって選択されるのがわかると思います。

また、
1	10	100
200	300	400
のように、各文字の間にタブ文字を入れると、行の先頭から指定文字の間隔で右にずれ、
綺麗に並ぶようになります。

(これだけではちょっとわかりづらいかもしれません。図があるともっとわかりやすいのですが)
一応、http://ja.wikipedia.org/wiki/%E3%82%BF% ... D%E3%83%BC の解説へのリンクも張っておきますね。

ちなみに「指定文字の間隔」は、 2, 4, 8 文字が一般的で、メモ帳などは 8 文字です。


それで、プログラムの処理内容ですが、
このタブ文字で整形されたレイアウトを崩すことなく、空白文字に置き換える、
ということです。
・実行前(タブは8文字と仮定)

10	000	1	0
100		1	100
	1	10	1

・実行後(見た目は変わりませんが、選択してみると置き換えられているのがわかります)

10      000     1       0
100             1       100
        1       10      1
という感じです。
(単にタブ文字を指定文字数分の空白に置き換えると、レイアウトが崩れてしまうので注意してください)

lbfuvab

Re:プログラムの説明

#3

投稿記事 by lbfuvab » 16年前

nを変更するなら変数で、しないなら定数扱いでいいでしょう。

研修生

Re:プログラムの説明

#4

投稿記事 by 研修生 » 16年前

なんとなくわかりました。ありがとうございました。

通りすがり

Re:プログラムの説明

#5

投稿記事 by 通りすがり » 16年前

× 理解しずらい
○ 理解しづらい


よく見かけるまちがいです。
理解するのが「つらい」のです。
理解するのが「すらい」ということばは、ありません。

閉鎖

“C言語何でも質問掲示板” へ戻る