主にC# な話題です
投稿日時 : 2010年2月22日 14:40
Cの文字列を番兵と呼ぶのには違和感がある。
>Cの文字列を番兵と呼ぶのには違和感がある。 同じく。 アレを番兵と呼ぶのは初めて聞きましたが、番兵と言えば番兵ですね。
同じく。 if の判定条件が1つ減るのが番兵だと思うぞ
あれ、違和感ありますかね? 僕は、真っ先に思い浮かぶんですけどねぇ。
例えば、検索の際に使う番兵とは ・終端に達したか ・見つかったか でループを終了する(=ループ内の比較が2種類必要)ところを、 ループの前に終端位置(の1つ先)に一致データをおき、ループ内の比較は ・見つかったか だけにする(=ループ内比較が1個で済むので速い) ループ後に終端位置(の1つ先)の一致データであったなら見つからなかったと判断 だと俺は思うわけで(大学の授業でもそう習ったし) ・バッファのサイズに達するか ・文字列の最後を見つけるか ループ内でこの2個の比較を行ってしまうのであれば番兵にならん、のだと思う。 バッファ末端位置に \0 をおき \0 までを・・・なら番兵。
そそ、ループ終了のためだけの判定を省けるのが番兵ですね。 だからこそ番兵なわけで。
\0 が槍を持った人の姿に見えれば、それが番兵です。
俺にはお金を持った人の姿に見えます。
文字列を処理する場合も、\0 になるまで char 型の配列をループで処理しませんか?
ああ、なるほど。 文字列の終端として\0を置いているという見方なら、確かに違和感がありますね。
Thanks for the article! I hope the author does not mind if I use it for my course work!...
UEUtRQ Well, actually, a lot of what you write is not quite true !... well, okay, it does not matter:D
Powered by: Copyright © R・田中一郎