c言語です。 任意の文字列内から任意の文字列が何個あるのかをカウントするプログラムを書かないといけないのですが、

C言語関連21閲覧

ベストアンサー

0

cur_str != NULLと*cur_str != '\0' は何が違うのでしょうか? 僕が本来書きたかったのは*cur_str != '\0' です。 NULLと\0は同じものとして捉えているのですが間違えでしょうか? トレースに関しては自分で頑張ってしてみようと思います。

その他の回答(1件)

0

(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のアドレス