おはようございます。
C言語初心者です。
問題の中で行き詰った部分があるので質問させてください。
問題の中で、1行の文字列で入力してその中から情報を取り出して使わなけばいけない、のですが、
例 12345空白a10空白b11空白cc12 リターン
と入力して、
最初の空白までの12345をどこかに保存。
その後ろのa、b、cの後ろの空白までに入っている数値を取得して保存したい。
のですが、どうすればいいでしょうか。
isspaceやstrtokなどを使うのかなと、調べながら考えてたのですが、
ソースに起こせないので質問させていただきました。
文字列から空白までの情報を取得
Re: 文字列から空白までの情報を取得
単純に情報の数が明確であるならばscanf("%d%d%d%d",...)で取得できると思いますが、
情報の数が明確でないのであれば、一回文字列化して空白の数を調べて配列変数を作り、strtokでNULL以外だった場合atoiで数値にする…などでしょうか…
ただ色々方法はあると思うのでこれが一番いいとは言い切れないと思いますし、エラー処理もきちんと行わないといけません
情報の数が明確でないのであれば、一回文字列化して空白の数を調べて配列変数を作り、strtokでNULL以外だった場合atoiで数値にする…などでしょうか…
ただ色々方法はあると思うのでこれが一番いいとは言い切れないと思いますし、エラー処理もきちんと行わないといけません
Dango San
Re: 文字列から空白までの情報を取得
今回は十進法の数字でない文字を含むので、%dではなくて%sを用いなければなりません。だんごさん さんが書きました:単純に情報の数が明確であるならばscanf("%d%d%d%d",...)で取得できると思いますが
十進法の数字の前につく文字がa,b,c,d,e,fのいずれかだけであるならば、%xでもいいかもしれません。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: 文字列から空白までの情報を取得
もっとたくさんの入力例を挙げてください。
入力行のパターンの厳密な定義でもかまいません。
とりあえず、これでどうでしょうか?
入力行のパターンの厳密な定義でもかまいません。
とりあえず、これでどうでしょうか?
Re: 文字列から空白までの情報を取得
ではC言語を使わない、というのはどうでしょうか?あしか さんが書きました:C言語初心者です。
例えばPerlの正規表現で取得するとか。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)