- ベストアンサー
文字列検索&分解の方法に関して
C言語初心者です。 現在、文字列の検索&分解のプログラムを作成しようとしているのですが、なかなかうまくいきません。 やりたいことは、カンマくぐりのCSV形式の文字列をカンマ毎に分解して出力させたいのです。 (例) 入力データ:"TEST1,TEST2,,TEST3" 出力結果: No1:TEST1 No2:TEST2 No3: No4:TEST3 カンマをstrchrにて検索したりしてはみましたが、うまく出力されないといった感じであります。 大変申し訳ございませんが、方法・ヒントを頂けるとうれしいです。 どうかよろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
配列内のデータがカンマになるまで別配列に読み込み(もしくは表示し)、カンマになったらまた次のカンマになるまで…と、char型変数一つづつ処理するつもりで試してみてください。 基本構文はこうなると思います。 while ( str[i] != NULL ){ if ( str[i] == ',' ){ }else{ } i++ }
その他の回答 (3)
- station702
- ベストアンサー率60% (3/5)
回答No.4
awkでよければ、 awk.exe '{gsub(/"/,"");n=split($0,a,",");for(i=1;i<=n;i++)print "No" i ":" a[i]}' 入力データ
- jacta
- ベストアンサー率26% (845/3158)
回答No.3
やはり1文字ずつ調べるのが基本です。 strtokを使うと、フィールドが空の場合でも連続したコンマをすべて潰してしまいますし、二重引用符で囲まれたフィールドも正しく扱えません。
- koko_u_
- ベストアンサー率18% (459/2509)
回答No.2
strtok を使う。
お礼
ご回答ありがとうございます。 なんとかできました。 1文字ずつ検索するのがミソですね。 大変ありがとうございました。