C言語なら、俺に聞け! <32>
■ このスレッドは過去ログ倉庫に格納されています
0751デフォルトの名無しさん
NGNG本の例題等でよく見る文です。
void TestStrStr(void)
{
char *s1 = "abcdef";
char *s2 = "de";
char *cp;
cp = StrStr(s1, s2);
printf("'%s'の中に現れる'%s'という文字列は%d文字目にある.\n", s1, s2, cp - s1 + 1);
}
strstr()が該当する文字列の先頭部分のポインタを返すのはわかるのですが、
一番最後の「cp - s1 + 1」を実行すると、s1の中のs2部分が何文字目から始まるかが
わかるのは何ででしょうか?
アドレスが格納されたcpから、s1を引いて1を足すことに何の意味があるのか。
かなりヘボヘボな質問ですが、うまく理解できずにもどかしい思いをしております。
■ このスレッドは過去ログ倉庫に格納されています