- ベストアンサー
特定の文字列が出てくるまでの文字数を数えるには
最近頭に空冷ファンを取り付けたくなるほどオーバーヒート状態になってます。 ご回答よろしくお願いします。 *str_A={"ABCDEFG"}; *str_B={"D"}; このような二つの文字列があったとします。 そして、str_Aの中にstr_Bが含まれていたら、 そのstr_Bまでの文字数を数える方法はありませんでしょうか? 上記の例でいうと、答えは「3」ということになります。 予想ではgetcを使うのかな~という気はするのですが、 もしとても簡単にその答えを出してくれるような関数があったら なんか悔しいので、こちらに投稿してみました。 ポイントは確実にお付けいたしますので、 ご回答よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
strcspn が適当かと思いますが。 一度自分で関数を書いてみるのも勉強には良いかと。
その他の回答 (1)
- nagare
- ベストアンサー率33% (280/831)
回答No.1
strstr()でできます。 ちょっとした計算が必要ですが・・・ 自力で作るのなら、whileの2重ループで簡単にできますけど・・・
質問者
補足
さっそくのご回答ありがとうございます。 strstrを使った場合、ポインタのアドレスが返ってきますよね? その場合、どうやってその読み込んだ文字列の頭からそのポインタまでの 文字数を数えればいいのでしょうか・・・? その方法がわかりません。 すみません、ポインタについていまいち理解できていないもので・・・。 あと、もしどうしても無理でないかぎり、 できるだけ2重ループなどは使わないようにプログラムを作りたいので、 2重ループ以外の方法でお願いします。 わがままいっぱいで申し訳ありません。
お礼
ありがとうございました。 strcspnでなんとかできるようになりました^^