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

解決済みの質問

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で文字列抽出ができると思っているのですが。

その他でも、うまいやり方がありましたらご教授ください。

投稿日時 - 2009-10-08 08:03:03

QNo.5350678

困ってます

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

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

投稿日時 - 2009-10-08 12:41:45

お礼

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

投稿日時 - 2009-10-08 19:27:24

ANo.2

0人が「このQ&Aが役に立った」と投票しています

[  前へ  |  次へ ]

ベストアンサー以外の回答(1件中 1~1件目)

ANo.1

strtok使えばいい。

投稿日時 - 2009-10-08 08:50:44

お礼

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

投稿日時 - 2009-10-08 19:24:54

あわせてチェックしたい
  • データのテキストファイル抽出 ...
  • テキストファイルの行抽出 ...
  • Verifying DMI Pool Data..........と表示されてPC起動ができません。 ...
PR
【回答募集中】花粉にひと言、物申す![ 詳細 ]

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら