• ベストアンサー

C言語 コンマで囲まれた文字列の抽出

よろしくお願いします。C初心者です。 以下のようなテキストファイルがあります。 data1:1002,2.5,3.5,1.25 data2:1205,3.5,2.7,1.2 .......... たとえばdata1行の2.5と3.5と1.25を抽出したい場合、どうすればいいでしょうか? strstrを使ってアドレスを求めようとしましたが、最初のコンマ位置のアドレスは帰ってきますが、2番目、3番目のアドレスを取得するにはどうすればいいか? それぞれのアドレスが取得できればmemcpyで文字列抽出ができると思っているのですが。 その他でも、うまいやり方がありましたらご教授ください。

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

  • ベストアンサー
  • titokani
  • ベストアンサー率19% (341/1726)
回答No.2

一行の数値の個数が同じなら、sscanfが便利です。 sscanf(buf,"%*[^:]:%*d,%f,%f,%f",&a,&b,&c);

et726
質問者

お礼

早速のご回答、ありがとうございます。sscanfを知ってたつもりでしたが、このような使い方をするのですね。ワイルドカードを使えば、まさに私のやりたかったことが実現できます。しっかり関数の勉強をします。

その他の回答 (1)

回答No.1

strtok使えばいい。

et726
質問者

お礼

早速のご回答、ありがとうございます。「指定文字で文字列を分割する関数」ですか。ほとんど関数を知らないので、もっと勉強します。

関連するQ&A