-PR-
解決
済み

C言語のsscanf関数の上手な使い方

  • すぐに回答を!
  • 質問No.60489
  • 閲覧数770
  • ありがとう数2
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 20% (2/10)

C言語で、
char buf[256];
char c1[10],c2[10],c3[10];
sscanf(buf,"%s%s%s",c1,c2,c3)
という、バッファから文字列を読み取るとき、
bufが、
"aa bb","aa,bb","aa, bb"の場合に、
c1 = "aa bb"
c2 = "aa,bb"
c3 = "aa, bb"
が入るようにする方法をご存知でしたら教えてください。
%[^\"]sを使ってみたのですが、c1しか格納できませんでした。
(条件)
" "かつ,で区切られた部分をパラメタに格納する。
" "内には、空白や,が入る。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル14

ベストアンサー率 50% (1122/2211)

こんな感じ。

#include <stdio.h>

int main(void)
{
  char buf[256] = "\"aa bb\",\"aa,bb\",\"aa, bb\"";
  char c1[10], c2[10], c3[10];
  printf("%s\n", buf);
  sscanf(buf, "\"%[^\"]\",\"%[^\"]\",\"%[^\"]\"", c1, c2, c3);
  printf("c1=%s\n", c1);
  printf("c2=%s\n", c2);
  printf("c3=%s\n", c3);
  return 0;
}
お礼コメント
yasu1

お礼率 20% (2/10)

どうもありがとうございました。
昨日、丸1日悩んでしまいました。
おかげさまで、うまくいきました。

今回はじめて「教えて!goo」で質問をしました。
a-kuma さまには、本当に感謝です。
投稿日時 - 2001-04-06 17:24:45
-PR-
-PR-
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ