C言語なら俺に聞け(入門篇) Part 7
■ このスレッドは過去ログ倉庫に格納されています
0325312
2007/02/08(木) 01:21:57またリロード忘れましたorz
こちらの質問には再度レスします
↓先ほどの続き↓
まず、文字列とはなにか.上の文字列で説明します.文字列とは a を先頭にb,c,d,…と連続に続いたものですよね.
ではこの文字列を表現するためにはどうしますか?もっとも簡単なのは先頭の位置だけを記憶しておいて、後は順に隣を見る、という方法ですね
まずa〜hまでの文字列を s とします.文字列 s を表現するには文字列の先頭の位置を記憶すればいいんでしたよね
つまり s には文字列"a〜h"の先頭の文字 'a' の位置が記憶されているわけです.'a'の位置は 6番地 ですよね
では 'e' の位置は何番地でしょうか?そして文字列 s において何番目の文字でしょうか?
'e'は10番地ですね.では 'e' が文字列 s において何番目か計算してみましょう.
p−s+1 という式において p は'e'の位置 10 が、 s は文字列 s の先頭番地6が入っています.
10-6は4です.そこに1を足すと5になります.よって文字' e' は文字列 s の 5番目ということになります
実際に数えてみると、確かに5番目ですね.
では p-s とした場合どうでしょうか.答えは4になり実際の値とは違います.
先ほども説明しましたが、これは s[0]='a'; 自身が数えに含まれていないからです.
p-s とした場合常に s[0] が含まれないわけですから +1 とすればつじつまが合うようになります.
■ このスレッドは過去ログ倉庫に格納されています