- ベストアンサー
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で文字列抽出ができると思っているのですが。 その他でも、うまいやり方がありましたらご教授ください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
一行の数値の個数が同じなら、sscanfが便利です。 sscanf(buf,"%*[^:]:%*d,%f,%f,%f",&a,&b,&c);
その他の回答 (1)
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
回答No.1
strtok使えばいい。
質問者
お礼
早速のご回答、ありがとうございます。「指定文字で文字列を分割する関数」ですか。ほとんど関数を知らないので、もっと勉強します。
お礼
早速のご回答、ありがとうございます。sscanfを知ってたつもりでしたが、このような使い方をするのですね。ワイルドカードを使えば、まさに私のやりたかったことが実現できます。しっかり関数の勉強をします。