ついでに
100と比較しているのは、454さんも言っているように
for(int i = 0;b[i] != 'd';i++)
と同意だと思われ。
“dまでの字数…”と書いてある~から。
これだとNULL終端見てないんで、
for(int i = 0;(b[i] && b[i] != 'd');i++)
か。
ただしコレだと'd'が存在しない場合のことはしらん。

文字列を格納する領域が必要なことは既に多くの方が説明されているので省略。