• ベストアンサー

特定の文字列が出てくるまでの文字数を数えるには

最近頭に空冷ファンを取り付けたくなるほどオーバーヒート状態になってます。 ご回答よろしくお願いします。 *str_A={"ABCDEFG"}; *str_B={"D"}; このような二つの文字列があったとします。 そして、str_Aの中にstr_Bが含まれていたら、 そのstr_Bまでの文字数を数える方法はありませんでしょうか? 上記の例でいうと、答えは「3」ということになります。 予想ではgetcを使うのかな~という気はするのですが、 もしとても簡単にその答えを出してくれるような関数があったら なんか悔しいので、こちらに投稿してみました。 ポイントは確実にお付けいたしますので、 ご回答よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

strcspn が適当かと思いますが。 一度自分で関数を書いてみるのも勉強には良いかと。

参考URL:
http://www.microsoft.com/japan/developer/library/default.asp?URL=/japan/developer/library/vccore/_crt_string_manipulatio
Wingard
質問者

お礼

ありがとうございました。 strcspnでなんとかできるようになりました^^

その他の回答 (1)

  • nagare
  • ベストアンサー率33% (280/831)
回答No.1

strstr()でできます。 ちょっとした計算が必要ですが・・・ 自力で作るのなら、whileの2重ループで簡単にできますけど・・・

Wingard
質問者

補足

さっそくのご回答ありがとうございます。 strstrを使った場合、ポインタのアドレスが返ってきますよね? その場合、どうやってその読み込んだ文字列の頭からそのポインタまでの 文字数を数えればいいのでしょうか・・・? その方法がわかりません。 すみません、ポインタについていまいち理解できていないもので・・・。 あと、もしどうしても無理でないかぎり、 できるだけ2重ループなどは使わないようにプログラムを作りたいので、 2重ループ以外の方法でお願いします。 わがままいっぱいで申し訳ありません。

関連するQ&A