質問: c言語です。 任意の文字列内から任意の文字列が何個あるのかをカウントするプログラムを書かないといけないのですが、
回答: (Lapisさん) strstr()関数は見付けたときはその先頭のアドレスを返します 見付からなかったNULLを返します whileループの終了条件はstrstr()がNULLを返した時(pがNULL)になります 1つ目を見付けた後の次の検索開始位置は1つ目のアドレスの次のアドレス(p+1)が検索開始位置になります、これを見付からなかった時(p=NULL)となるまで繰り返します key=ab 0000000abc0000ab0000 1回目 S--------P 0000000abc0000ab0000 2回目 -----------S-------P 0000000abc0000ab0000 3回目 --------------------S------ PはNULL S:検索開始位置 P:Pのアドレス